嗨我有4个字符串来执行组合 - 1)PES 2)PEA 3)PAL 4)PSL
我必须编写一个脚本来执行组合(组合 - ncr公式),这样我只需要与以下算法组合
If I have PAL in the combination output then keep PAL only and remove other string (PEA,PES,PSL) for egs if I have one of combination as PAL PSL then I only need PAL in output which I think will be in data frame format.
如果我的输出中有PEA而不是PAL,那么只保留PEA而不包括其他(PES和PSL),例如,如果我有像PEA PSL这样的组合,那么我的输出中只需要PEA
所有都是字符串
结果 - 1)PAL 2)PEA 3)PSL + PES
答案 0 :(得分:1)
这将返回大小为4到1的组合,并从任何具有PAL的PAL中移除非PAL项目。它使用combn
函数返回特定大小的组合集:
lapply( lapply(1:4 , combn, x=strings), # modify if smaller set of sizes needed
function(cx){
apply(cx, 2, function(col) if( any(col=="PAL") ) {"PAL"} else { paste( col ) } ) } )
我们不清楚您希望如何将这些内容传递出去,因为将它们返回到数据帧"没有多大意义,因为它们的长度各不相同。
[[1]]
[1] "PES" "PEA" "PAL" "PSL"
[[2]]
[[2]][[1]]
[1] "PES" "PEA"
[[2]][[2]]
[1] "PAL"
[[2]][[3]]
[1] "PES" "PSL"
[[2]][[4]]
[1] "PAL"
[[2]][[5]]
[1] "PEA" "PSL"
[[2]][[6]]
[1] "PAL"
[[3]]
[[3]][[1]]
[1] "PAL"
[[3]][[2]]
[1] "PES" "PEA" "PSL"
[[3]][[3]]
[1] "PAL"
[[3]][[4]]
[1] "PAL"
[[4]]
[1] "PAL"