操作列表组件

时间:2019-10-16 11:40:24

标签: r list

生成名称列表的新组合。我使用以下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,而没有任何组合。任何建议,将不胜感激。

1 个答案:

答案 0 :(得分:4)

函数combn具有一个函数。因此,如果您通过toStringunlist,则会得到输出,即

unlist(lapply(1:length(names1), function(x) combn(names1, x, toString)))
#[1] "A"       "B"       "C"       "A, B"    "A, C"    "B, C"    "A, B, C"