【发布时间】:2018-08-29 03:32:26
【问题描述】:
从单个 data.frame 中,我生成了与主 data.frame 中列的排列一样多的 data.frame。从这里开始,我希望 1) 每个排列后的 data.frame 以排列顺序命名,保留每个列名的第一个字母,2) cbind 每个 data.frames 与另一个:
data1 <- data.frame("Alpha"=c(1,2), "Beta"=c(2,2), "Gamma"=c(4,8))
data2 <- data.frame("Delta"=c(22,3))
library(combinat)
idx <- permn(ncol(data1))
res <- lapply(idx, function(x) data1[x])
res
[[1]]
Alpha Beta Gamma
1 1 2 4
2 2 2 8
[[2]]
Alpha Gamma Beta
1 1 4 2
2 2 8 2
[[3]]
Gamma Alpha Beta
1 4 1 2
2 8 2 2
...
[[6]]
Beta Alpha Gamma
1 2 1 4
2 2 2 8
首先,我希望每个之前的data.frame 都以排列顺序命名,保留每个列名的第一个字母,以便显示以下 data.frames:
dataABG
Alpha Beta Gamma
1 1 2 4
2 2 2 8
dataAGB
Alpha Gamma Beta
1 1 4 2
2 2 8 2
dataGAB
Gamma Alpha Beta
1 4 1 2
2 8 2 2
...
然后,我想用data2 cbind 之前的每个数据帧,保留之前的数据帧名称。
【问题讨论】:
标签: r dplyr rename permutation cbind