r - 获取给定一组元素的所有组合,并在 r 中排列
问题描述
我有两个参数(比如“A”和“B”),需要针对单独或组合应用的一组治疗(“PD”、“MO”、“K”)进行测试,除了没有任何治疗 (”。”)。我需要获得影响参数“A”和“B”的所有可能的治疗组合。我带来了一种非常基本的方法来做到这一点,但我需要一种更有效的方法来做到这一点,因为有很多治疗方法。
这是我可重现的例子
effects <- c(".", "PD", "MO", "PD,MO", "K", "K,PD", "K,MO", "K,PD,MO")
res.perm <- permutations(n = 8, r = 2, v = effects, repeats.allowed = TRUE)
print(res.perm, quote = FALSE)
这就是我得到的
......
如果有人可以提供更优雅或更聪明的方式来做到这一点,那就太好了。我实际需要使用的输入是V1 = c("PD", "MO", "K")
谢谢。
解决方案
我们可以在一个循环 ( )中获得 1 到 3 'm'combn
的 ('v1') 的ations,将它们转换为单个字符串 ( ),将它两次转换为 a并应用于它vector
lapply
paste
toString
unlist
replicate
list
expand.grid
expand.grid(replicate(2, unlist(c(".", lapply(1:3,
function(i) combn(v1, i, FUN = toString)))), simplify = FALSE))
数据
v1 <- c("PD", "MO", "K")