r 中的 T 检验:如何使用 lapply 函数更改 t 检验的 x 和 y 参数

Posted

技术标签:

【中文标题】r 中的 T 检验:如何使用 lapply 函数更改 t 检验的 x 和 y 参数【英文标题】:T test in r: How to change the x and y arguments of a t-test using a lapply function 【发布时间】:2020-10-18 10:21:54 【问题描述】:

我有这个数据框:

我正在使用这种 lapply 方法执行 t_test:

columns = colnames(my_data)[-1]
my_t_test<-lapply(my_data[columns], function(x) t.test(x~my_data$Treatment,alternative='less'))

但似乎 t_test 采用了x=my_data$Controly=my_data$Stress,使得结果毫无意义。由于我正在测试另一种假设,即$Stress 组中的均值差异较小,我希望 x 参数为my_data$Stress。并且选项是更改为alternative='greater',但这是一种糟糕的方法,另一个选项是更改我的数据框中组的顺序,但我正在寻找一种编程解决方案。

有什么建议吗?

【问题讨论】:

你有factor 栏目吗?在这里,您使用的是公式方法。最好是function(x) t.test(val ~ Treatment, data = data.frame(val = x, Treatment = my_data$Treatment)) 我觉得你很困惑。如果这是您的数据框在 R 控制台会话中显示的方式,那么列名,即。变量名是“21”、“28”、“35”、... @akrun,不工作,顺便说一下,我改变了我的数据框的顺序,把压力行放在第一位,但结果是一样的。我很困惑 @DavidLópez 你能用dput这个例子来测试吗?谢谢 【参考方案1】:

我们可以通过遍历列名向量来对“my_data”的列进行子集化后使用公式方法

lapply(columns, function(nm) t.test(.~ Treatment, my_data[c('Treatment', nm)]))

【讨论】:

以上是关于r 中的 T 检验:如何使用 lapply 函数更改 t 检验的 x 和 y 参数的主要内容,如果未能解决你的问题,请参考以下文章

R中的二尾和一尾T检验

如何使用lapply来计算r中列表中的唯一值

如何在 R 的 lapply() 中引用正在操作的行

R语言使用t.test函数计算两组独立数据的t检验(Independent t-test)

如何在 R 中使用 lapply 消除异常

如何在 lapply (R) 中显式定义附加参数