【发布时间】:2018-02-24 18:20:38
【问题描述】:
我正在尝试编写一个函数,该函数接受来自用户的 Var1 和 Var2 并运行 t.test 并返回女性分类的平均值。但是我收到了 calc 行的错误。如果我在没有粘贴和as.formula 函数的情况下运行程序并使用t.test(dat[[Var2]]~dat[[Var1]] 运行,我会得到正确的答案。
但在我的原始代码中,我需要使用粘贴功能。谁能让我知道下面代码中使用 paste 和 as.formula 函数的错误是什么?我正在使用 MASS 库中的 quine 数据框。
func = function(dat=quine,Var1,Var2){
# calc = t.test(dat[[Var2]]~dat[[Var1]] #gives the answer
calc = t.test(as.formula(paste(dat[[Var2]], dat[[Var1]], sep="~"))) #gives an error
return(F.mean = calc$estimate[1])
}
func(Var1= "Sex", Var2= "Days")
这是头(奎因)
Eth Sex Age Lrn Days
1 A M F0 SL 2
2 A M F0 SL 11
3 A M F0 SL 14
4 A M F0 AL 5
5 A M F0 AL 5
6 A M F0 AL 13
【问题讨论】:
-
您可以使用
dput(quine)发布示例数据集吗?或者如果数据框太大,dput(head(quine, 20)).
标签: r function user-defined