假设您有4个或更多csv文件,我只想合并它们,并打印输出!
我打开了这样的文件:
df1 <- read.csv("file1", sep ='\t')
df2 <- read.csv("file2", sep ='\t')
df3 <- read.csv("file3", sep ='\t')
df4 <- read.csv("file4", sep ='\t')
问题是所有文件都有不同数量的行和列,没有相同的列名。我的教授说要合并它们,所以我期待输出就像这样
file1.column11 ... file1.column1N file2.column21 ... file2.column2N ...
value11 ... value1N NA ... NA
.
.
.
NA ... NA value21 ... value2N
这可以以某种方式完成吗?我一直在使用merge(),join_all()和其他东西,我不能深入到这个......
我也是R的新手。
答案 0 :(得分:1)
我是否做对了:你没有相同的列名?
如果是,那么只有当他们有一个单独的列时才能并排merge()
,并且它们将被合并。
例如,您可以拥有年份列或主题ID等。 然后你写:
file.overall <- merge(file1,file2,by="common_column_name")
接下来,连接下一个文件:
file.overall2 <- merge(file.overall,file2,by="common_column_name")
按顺序保留此功能,直到添加完所有文件为止。
如果您希望列具有不同的名称,请事先重命名列:
names (file1)<- c("file1.column1_name", ...)
另一方面,如果您希望将merge
个文件放在另一个下,则所有列的名称必须相同,并且您可以使用rbind()
。
答案 1 :(得分:0)
通常,没有特定的方法将数据框与不同的内容合并。
您需要弄清楚如何合并数据集。有些事情要考虑:
答案 2 :(得分:0)
如果所有数据框都有不同的行名,您可以按以下方式合并它们:
merge(df1, df2, by="row.names", all.x=T, all.y=T)
否则,如果您安装了plyr
,则可以执行以下操作(它将使用NA填充所有空单元格):
library(plyr)
rbind.fill(df1, df2)