我有一个df列表,下面是一个df的例子:
`Basics Chest` Anatomie Atlas
<lgl> <chr> <chr>
1 NA NA Xray
2 NA NA CT
3 NA NA PET-CT
4 NA CT Protokolle Chest Standard NA
现在我想把第一列的标题--在本例中是“Basics Chest”--放在后面几列的字符串之后,如下所示:
`Basics Chest` Anatomie Atlas
<lgl> <chr> <chr>
1 NA NA Xray - Basics Chest
2 NA NA CT - Basics Chest
3 NA NA PET-CT - Basics Chest
4 NA CT Protokolle Chest Standard - Basics Chest NA
正如您所看到的,NA不应该被这种情况影响(必须保留它们,所以在前面的步骤中没有过滤掉它们)。
这应该适用于所有列数可变的df列表,因为我正在考虑将其包含到for循环中。
此致
2条答案
按热度按时间nukf8bse1#
如果我正确理解了您要做的事情,我认为您要查找的是purrr库,它是tidyverse的一部分,特别是map()函数家族,这是了解您是否正在使用R的最佳工具之一;它极大地清理了代码,一旦你习惯了它,它就会变得非常有意义。2然而,它确实需要一段时间来让你理解它。3它要求你相当好地理解列表和函数。4然而,使用purrr的回报是巨大的。
map函数遍历列表或向量,并对每个元素应用一个函数。我想在R for Data Science中有整整一章都是关于它们的,这是免费的,强烈推荐。
这里需要注意的一件重要事情(您将在下面的第二步中看到)是, Dataframe 本质上是一个长度相同的向量列表。
在下面的解决方案中:
1.编写一个函数,获取第一列的名称,然后将该文本添加到 Dataframe 中的每一列。
1.将步骤2中创建的函数应用于整个数据框列表。
如果你有任何问题或者我误解了什么,请告诉我。
2q5ifsrm2#
我们可以在
Atlas
到paste
中使用基于NA
的ifelse
对于多列,只需循环
Atlas
以外的列,然后执行相同的操作或使用
dplyr
数据