【发布时间】:2015-08-14 16:12:07
【问题描述】:
我有一个包含 3 列的数据框:
df=
+------+------+---+
| Var1 | Var2 | n |
+------+------+---+
| Y | N | 5 |
| Y | Y | 6 |
| Y | N | 3 |
| N | Y | 8 |
| N | N | 1 |
| N | Y | 9 |
+------+------+---+
我想对 Var2 中的 Y 与 N 中的值进行 t 检验,但仅限于 Var1 = Y 时。这可能吗?
【问题讨论】:
-
你试过
subset即subset(df, Var1=='Y')然后对子集数据进行测试。或许library(data.table); setDT(df)[Var1=='Y', t.test(n[Var2=='N'], n[Var2=='Y'])$p.value](例子可能观察不够) -
这“有效”,但有没有办法在不先创建新数据框的情况下做到这一点?
-
你可以做
with(df[df$Var1 == "Y",], t.test(n[Var2 == "Y"], n[Var2 == "N"])) -
@Adam_G 我只使用
setDT转换为data.table。它应该是有效的 -
感谢这些。那行得通。
标签: r dataframe statistics