假设我有一个带有二进制分组变量和一个因子的数据框。这种分组变量的一个示例可以指定分配给实验的处理和控制条件。在下面,b是分组变量,而a是任意因子变量:
a <- c("a","a","a","b","b")
b <- c(0,0,1,0,1)
df <- data.frame(a,b)
我想完成两个样本的 t 检验来评估以下内容:
- 对于a 的每个水平,在b中指定的组之间采用该水平的平均倾向是否存在差异。
我使用dummies包为因子的每个级别创建单独的虚拟变量,然后手动对结果变量执行 t 检验:
library(dummies)
new <- dummy.data.frame(df, names = "a")
t.test(new$aa, new$b)
t.test(new$ab, new$b)
我正在寻求以下帮助:
- 有没有办法在不通过 dummy.data.frame() 创建大量虚拟变量的情况下执行此操作?
- 如果在不创建大量假人的情况下没有更快的方法来做到这一点,是否有更快的方法来完成跨多个列的 t 检验?
笔记
这类似于但不同于R - How to perform the same operation on multiple variables并且几乎与此问题Apply t-test on many columns in a dataframe split by factor但该问题的解决方案不再有效。