我是相对新手,正在尝试解决如何合并多个数据框,这些数据框的行数不同,但都有一个共同的列"Year"。 我查看了类似的问题和这个问题: Merge dataframes, different lengths 提供了一个很好的答案。 但是,当我将其应用到自己的数据时,无法使用多个数据框; 我总是收到错误消息。
目标是生成一个单一的数据框,其中第1列是年份,第2列是站点1,第3列是站点2,依此类推。我目前有大约17个数据框(最多可能有40个),对应于具有可变时间轴/行数的17个站点。
任何帮助都将不胜感激。
我尝试过的代码:
示例数据:
> df1 <- data.frame(Year=2006:2011, Site1=c("2.3", "1" , "3.1", "2.9", "1.4", "3"))
> df2 <- data.frame(Year=2007:2011, Site2=c("2.7", "4.1", "1.1", "2.6", "3.1"))
> df3 <- data.frame(Year=2008:2011, Site3=c("1.3", "2" , "3.6", "1.7"))
目标是生成一个单一的数据框,其中第1列是年份,第2列是站点1,第3列是站点2,依此类推。我目前有大约17个数据框(最多可能有40个),对应于具有可变时间轴/行数的17个站点。
任何帮助都将不胜感激。
我尝试过的代码:
> NewDF <- merge(df1, df2, by="Year", all.x=TRUE, all.y=TRUE)
这对于两个data.frame很有效,但是当我尝试添加另一个data.frame时,收到了错误信息:
> NewDF <- merge(list=c(df1, df2, df3), by="Year", all.x=TRUE, all.y=TRUE)
Error in as.data.frame(x) : argument "x" is missing, with no default