【发布时间】:2016-03-28 12:16:57
【问题描述】:
我想在拆分矩阵后同时从一个数据帧创建一个列表或多个 data.frame。我正在使用函数 combn 创建一个矩阵。 例如:
combos<-combn(1:3, 2)
combos
[,1] [,2] [,3]
[1,] 1 1 2
[2,] 2 3 3
在我有一个包含 3 列的数据框之后。
col1<-c(0,2,4);col2<-c(1,3,5);col3<-c(6,7,8)
df<-cbind.data.frame(col1,col2,col3)
df
col1 col2 col3
1 0 1 6
2 2 3 7
3 4 5 8
使用组合我想在数据框或列表中得到这个结果:
df1
col1 col2
1 0 1
2 2 3
3 4 5
df2
col1 col3
1 0 6
2 2 7
3 4 8
df3
col2 col3
1 1 6
2 3 7
3 5 8
在那之后, 我想将这些数据框或列表与其他数据框或列表加入以获得此结果: 使用这个新数据 dfo
col1<-c('a','c'); col2<-c('b','d')
dfo<-cbind.data.frame(col1,col2)
col1 col2
1 a b
2 c d
df1o
col1 col2
1 0 1
2 2 3
3 4 5
4 a b
5 c d
df2o
col1 col3
1 0 6
2 2 7
3 4 8
4 a b
5 c d
df3o
col2 col3
1 1 6
2 3 7
3 5 8
4 a b
5 c d
我有 3000 df 和 5000 dfo
【问题讨论】:
-
combn(1:3, 2, FUN=function(x) rbind(df[,x], setNames(dfo, names(df[,x]))), simplify=FALSE)(假设你想像这样组合数字和字母) -
感谢 user20650。我在帖子上错了。字母只是举例。我想结合数字和数字,(dfo也是数字)。对不起,我是我的第一篇文章!
-
本次编辑没有损坏任何矩阵。