我有一个R脚本,可以创建一个包含61列的数据框。 data.frame是通过将一堆csv文件读入data.frames列表,然后合并列表,使得列表中每个data.frame中的通常命名的列填充结果data.frame中的相同列。 / p>
应该合并的一些列在csv文件中命名不一致(例如date.received vs received.on.date vs date.sample.received),我想知道将它们组合起来的最佳方法是什么是
我有几个想法:
是可能的第二种方法(以及如何?)还是有更好的方法?
答案 0 :(得分:0)
第二种方法是可行的,使用rbind_all
包中的dplyr
可以轻松实现。方法如下:
首先,如果您有关于应该堆叠在一起的列名称模式的一些信息,我建议您在堆叠之前尝试修复它,例如:
colnames_synonymous <- c("date.received", "received.on.date", "date.sample.received")
list_of_dfs <- lapply(list_of_dfs, function(df) {
names(df)[names(df) %in% colnames_synonymous] <- "date_received"
return(df)
})
现在你很高兴:
dplyr::rbind_all(list_of_dfs)
在将所有列堆叠正确之前,您可能需要做一些调整,但现在,您需要做的就是更改lapply函数来执行此操作。我发现这比在rbinding之后进行一些列转换更容易。