为什么在R中使用wilcox.test
作为关键字参数使用“公式”作为关键字时会出现错误?文档说它有一个“公式”参数。
df = data.frame(A=rnorm(10), D=sample(c('p','q'), 10, replace=T))
wilcox.test(data=df, A~D)
wilcox.test(data=df, formula=A~D)
> df = data.frame(A=rnorm(10), D=sample(c('p','q'), 10, replace=T))
> wilcox.test(data=df, A~D)
Wilcoxon rank sum test
data: A by D
W = 13, p-value = 1
alternative hypothesis: true location shift is not equal to 0
> wilcox.test(data=df, formula=A~D)
Error in wilcox.test.default(data = df, formula = A ~ D) :
argument "x" is missing, with no default
答案 0 :(得分:4)
我认为这很困惑,因为泛型和公式方法为公式参数使用了不同的名称,即x
和formula
。通常,在编写S3方法时,方法的参数名称应与通用参数一致。
> args(wilcox.test)
function (x, ...)
NULL
> args(stats:::wilcox.test.formula)
function (formula, data, subset, na.action, ...)
NULL
答案 1 :(得分:1)
您的参数顺序不正确。
> wilcox.test(formula=A~D, data=df)
Wilcoxon rank sum test
data: A by D
W = 13, p-value = 0.6667
alternative hypothesis: true location shift is not equal to 0
42-指出我对公式参数的用途不正确,因为如果没有可选的数据参数,则数据对象将从环境中继承。该函数选择默认方法而不是公式方法,因为它在第一个参数位置看不到公式参数。否则,参数顺序将无关紧要。