如何计算组合数并集成到函数中?

时间:2014-05-27 12:17:49

标签: r combinations

当我尝试使用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)

1 个答案:

答案 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)