如何合并或连接数据框并保留行名称?

时间:2015-03-06 16:38:44

标签: r

我的数据框很少,一列是值及其对应的名称。 我希望当我合并它们时我也保留行名称

例如

df1<- data.frame(replicate(1,sample(0:1,10,rep=TRUE)))
df2<- data.frame(replicate(1,sample(0:1,10,rep=TRUE)))
df3<- data.frame(replicate(1,sample(0:1,10,rep=TRUE)))

我希望有一个类似

的输出
row.names1  variable    row.names2  variable    row.names2  variable
1              1            1           1           1           0
2              1            2           0           2           1
3              0            3           0           3           1
4              0            4           1           4           1
5              0            5           0           5           0
6              0            6           0           6           0
7              0            7           1           7           0
8              0            8           1           8           0
9              0            9           0           9           0
10             1            10          1          10           1

2 个答案:

答案 0 :(得分:1)

do.call(cbind,mget(paste0("df",1:3)))

答案 1 :(得分:1)

我想你想cbind保存rownames的数据集。使用data.table的选项是

library(data.table) #data.table_1.9.5
dt <- do.call(cbind,lapply(mget(paste0("df",1:3)),
           as.data.table, keep.rownames=TRUE))
setnames(dt, seq(2,ncol(dt),by=2), rep('variable',3))
setnames(dt, seq(1,ncol(dt), by=2), paste0('row.names', 1:(ncol(dt)/2)))
head(dt,2)
#   row.names1 variable row.names2 variable row.names3 variable
#1:          1        0          1        1          1        1
#2:          2        0          2        1          2        0