【发布时间】:2021-12-28 22:52:37
【问题描述】:
我想对具有不同列长度的数据框应用 t 检验。
我有两个数据框:
DF1:
| Group | Name | Weight |
|---|---|---|
| A | Max | 435 |
| B | Jake | 657 |
| A | Sarah | 99 |
DF2:
| Group | Name | Weight | bmi |
|---|---|---|---|
| A | Mat | 435 | 16 |
| B | Amy | 657 | 35 |
| A | John | 99 | 25 |
实际上,我的数据框要长得多,相差约 100 列,但组织结构相同。
我想按组查看每列的差异。例如,我想应用 t 检验比较 DF1 中 A 组的权重与 B 组的权重。
当呈现 DF2 时,我希望 t.test 比较 A 组和 B 组之间的权重,并比较 A 组和 B 组之间的 bmi。
这是我目前所拥有的:
lapply(DF2[-2], function(x) t.test(x ~ DF2$Group))
我收到此错误:
if (stderr
有没有办法避免指定确切的列名,而是告诉 t.test 函数在第二个之后的每一列上应用统计测试?
【问题讨论】:
-
lapply(names(DF2)[3:4], function(x) t.test(reformulate('Group', x), DF2)) -
@Onyambu 我希望它在第二列之后迭代几列,而不仅仅是第三和第四列。我希望能够在第二个之后为其提供几个列数不同的数据帧。
标签: r dataframe statistics