R中的连接/合并表

7 merge r concatenation

我有一些表格Table1,Table2,Table3,Table4.他们有相同数量的columnsrows我想要的是merge他们成为一个大Table.

我已经尝试制作表的列表,然后将其转换为a matrix但输出似乎不是我想要的.

l <- list(Table1, Table2, Table3, Table4)
l <- lapply(l, as.data.frame)
m <- matrix(unlist(l), nrow = length(l))
Run Code Online (Sandbox Code Playgroud)

我也试过merge使用四个表,merge(Table1, Table2, Table3, Table4)但我不确定提供正确的参数,因此我得到一个错误.

fix.by(by.x,x)出错:
'by'必须指定一个或多个列作为数字,名称或逻辑
调用:merge - > merge.data.frame - > fix.by

我还尝试将表写入外部.txt文件,然后从该文件中读取新表.

#write.table(Table1, file = "file.txt", append = TRUE)
#write.table(Table2, file = "file.txt", append = TRUE, col.names=FALSE)
#write.table(Table3, file = "file.txt", append = TRUE, col.names=FALSE)
#write.table(Table4, file = "file.txt", append = TRUE, col.names=FALSE)
Run Code Online (Sandbox Code Playgroud)

然而,由于各种原因,这种解决方案是不够的,我不得不放弃它.

顺便说一句,我宁愿第一个解决方案以某种方式工作.

编辑:我忘了提到所有四个表都有相同的索引1,2,3,..,和相同的列名等.我指出这一点,因为例如cbind不适合.

我很确定这是一项微不足道的任务,但我被困住了.有帮助吗?

小智 7

它仍然是不同标题的问题.这应该做的伎俩:

names(table2) <- names(table1)
names(table3) <- names(table1)
names(table4) <- names(table1)
Run Code Online (Sandbox Code Playgroud)

然后为每个表执行此操作

rbind(table1,table2,...)
Run Code Online (Sandbox Code Playgroud)

如果你想知道标题是否相同,你可以比较它们

names(table1) == names(table2)
Run Code Online (Sandbox Code Playgroud)

等等