当我尝试使用Combinat包和combn命令计算R中的组合时,它为我提供了所有可能的组合。但我想在函数(reqn)中集成所有组合,然后打印所有。我该怎么办?
df1 <- c(1234,1333,1332,1333,15,1234,15, 162, 1234)
num1<- c(1,2,3,1,4,2,2, 2,3)
data.frame(df1,num1)
reqn<-c(1,3)
names(Filter(identity,
apply(table(df1, factor(num1, levels=reqn))>0, 1, all)))
install.packages("combinat")
require(combinat)
combn(3, 2)
答案 0 :(得分:2)
为什么不使用apply
?我很可能误解了你的问题,但这是我相信你可能会问的问题的解决方案。
apply(combn(3, 2), 2, function(reqn, df){
names(Filter(identity,
apply(table(df1, factor(num1, levels=reqn))>0, 1, all)))
}, df=df1)
或者相同的结果
combn(3, 2, function(reqn, df){
names(Filter(identity,
apply(table(df1, factor(num1, levels=reqn))>0, 1, all)))
}, df=df1, simplify=FALSE)