r - 操作列表组件
问题描述
生成名称列表的新组合。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。任何建议,将不胜感激。
解决方案
该函数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"
推荐阅读
- python - 将文本文件的内容存储在数组中
- javascript - 函数作为 React 子级无效。我在我的代码中找不到导致此错误的任何内容
- sql - 如何在 SSIS 中将多个 excel 名称表加载为不同的 sql 表
- api - 我是否在滥用 GitHub API?如果是这样,有什么替代方案?
- android - 多模块项目中的android样式
- algorithm - 从给定区域采样
- python - 找到数字序列的多项式公式
- python - 我添加了我需要的所有小部件,但我的程序主窗口仍然是空白的,我不知道为什么
- bash - 在 perl 循环中重定向命名管道
- java - URLDecoder:使用spring上传时不完整的尾随转义(%)模式