使用data.frame上的by()在R中进行二项测试

使用data.frame上的by()在R中进行二项测试,r,function,apply,R,Function,Apply,我对binom.test在by选项中使用时的行为感到困惑 它似乎不适用于某些数据帧,但适用于我放在一起的一些虚拟数据 调用mean() 下面是我的示例代码 #####这不起作用。。。 bug如果您尝试以下操作,您可以看到问题: by(bug,bug$spray.n,FUN=function(X)table(X$outcome))一些binom.test调用不起作用的原因是一些组都成功(或失败)。因此,为了进行测试,每个小组至少需要两个级别(这完全有道理…) 完整性: #

我对
binom.test在
by
选项中使用时的行为感到困惑

它似乎不适用于某些数据帧,但适用于我放在一起的一些虚拟数据

调用
mean()

下面是我的示例代码


#####这不起作用。。。

bug如果您尝试以下操作,您可以看到问题:


by(bug,bug$spray.n,FUN=function(X)table(X$outcome))

一些
binom.test
调用不起作用的原因是一些组都成功(或失败)。因此,为了进行测试,每个小组至少需要两个级别(这完全有道理…)


完整性:

           #####  this does work...

           air <- airquality
           air

           air$outcome <- ifelse(air$Wind > 10, 1, 2 )


           binom.test(table(air$outcome), alternative="greater")



           by(air, air$Month, FUN = function(X) mean(X$Wind))

           by(air, air$Month, FUN = function(X) table(X$outcome))

           by(air, air$Month, FUN = function(X) binom.test(table(X$outcome), alternative="greater"))
#####这确实有效。。。

air如果您尝试的话,您可能会看到一个问题:
by(bug,bug$spray.n,FUN=function(X)table(X$outcome))
在没有警告或注释的情况下滑入
rm(list=ls())
是不礼貌的。@DWin很抱歉,在我没有密切注意的情况下溜进来…+1您的额外解释对其他人更有用。
           #####  this does work...

           air <- airquality
           air

           air$outcome <- ifelse(air$Wind > 10, 1, 2 )


           binom.test(table(air$outcome), alternative="greater")



           by(air, air$Month, FUN = function(X) mean(X$Wind))

           by(air, air$Month, FUN = function(X) table(X$outcome))

           by(air, air$Month, FUN = function(X) binom.test(table(X$outcome), alternative="greater"))