生成名称列表的新组合。我使用以下list
代码生成了R
:
names1 <- c("A", "B", "C")
lst <- lapply(1:length(names1), function(x) combn(names1, x))
lst
> list
[[1]]
[,1] [,2] [,3]
[1,] "A" "B" "C"
[[2]]
[,1] [,2] [,3]
[1,] "A" "A" "B"
[2,] "B" "C" "C"
[[3]]
[,1]
[1,] "A"
[2,] "B"
[3,] "C"
现在,我想将此列表转换为包含以下7个组件的向量,就像这样:
newlst <- c("A", "B", "C", "A, B", "A, C", "B, C", "A, B, C")
换句话说,我想将每一列中的值合并为新向量的一个分量。 unlist(lst)
将无法工作,因为它会产生12个单独的As,B和C,而没有任何组合。任何建议,将不胜感激。
答案 0 :(得分:4)
函数combn
具有一个函数。因此,如果您通过toString
和unlist
,则会得到输出,即
unlist(lapply(1:length(names1), function(x) combn(names1, x, toString)))
#[1] "A" "B" "C" "A, B" "A, C" "B, C" "A, B, C"