我想循环查看由创建的组合combn()
。
输入:
"a" "b" "c" "d"
所需输出:
[1] "a" "b" "c" "d"
[1] "a and b" "a and c" "a and d" "b and c" "b and d" "c and d"
[1] "a and b and c" "a and b and d" "a and c and d" "b and c and d"
[1] "a and b and c and d"
我试过的
classes <- letters[1:4]
cl <- lapply(1:length(classes), combn, x = classes)
apply(cl[[1]], 2, paste, collapse = " and ")
apply(cl[[2]], 2, paste, collapse = " and ")
apply(cl[[3]], 2, paste, collapse = " and ")
apply(cl[[4]], 2, paste, collapse = " and ")
基本上,我的问题是遍历最后一部分的最佳方法是什么apply(cl[[NR]], 2, paste, collapse = " and ")
。
我考虑过了lapply
,但是我要分配FUN
两次,将lapply组合并应用到一个调用中似乎很奇怪。for循环是可能的,但也许有更有效的方法。
如果该问题更适合代码审查,我很乐意将其迁移。
您可以遍历向量的长度,并使用的函数参数使用以下combn()
命令折叠输出paste()
:
vec <- letters[1:4]
lapply(seq_along(vec), function(x) combn(vec, x, FUN = paste, collapse = " and "))
[[1]]
[1] "a" "b" "c" "d"
[[2]]
[1] "a and b" "a and c" "a and d" "b and c" "b and d" "c and d"
[[3]]
[1] "a and b and c" "a and b and d" "a and c and d" "b and c and d"
[[4]]
[1] "a and b and c and d"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句