分组后如何在一个函数(t.test)中使用2列

时间:2018-12-12 16:56:25

标签: r aggregate t-test

我有一个需要在两列上使用t.test函数的列表。我知道我可以做到

t.test(myF$before, myF$after)

但是分组后,我有很多小组,一个个地做一个麻烦。

我使用如下所示的SQL查询获取数据:

myF <- sqlQuery(conn, 'Select colA, colB, colC, before, after from MyTable')

下面的代码将使我在beforeafter列中一一对应。

aggregate(cbind(before = before, after = after) ~ colA+colB+colC, 
          data = myF, 
          FUN = mean)

输出与此类似:

colA      colB     colC      before after
GroupA1   GroupB1  GroupC1   110    11
GroupA2   GroupB1  GroupC1   44     15
GroupA3 .....................
......

所以我想在每个组的t.testbefore列之间获得after个结果。我该如何实现?

1 个答案:

答案 0 :(得分:1)

您没有提供明确的输入或预期的输出,但看起来像是

myF %>% group_by(colA, colB, colC) %>% summarise(pval = t.test(.$before, .$after)$p.val)

应该实现您想要的。