【发布时间】:2014-12-02 08:54:05
【问题描述】:
是否有可能以某种方式针对同一个分类变量对多个变量进行 t.test,而无需按如下方式对数据集进行重塑?
data(mtcars)
library(dplyr)
library(tidyr)
j <- mtcars %>% gather(var, val, disp:qsec)
t <- j %>% group_by(var) %>% do(te = t.test(val ~ vs, data = .))
t %>% summarise(p = te$p.value)
我尝试过使用
mtcars %>% summarise_each_(funs = (t.test(. ~ vs))$p.value, vars = disp:qsec)
但它会引发错误。
奖励:t %>% summarise(p = te$p.value) 如何还包含分组变量的名称?
【问题讨论】:
-
您应该考虑在代码中添加空格。
-
这可能是 data.table 的部分解决方案(没有汇总部分): (step1) library(data.table) (step2) setDT(j) (Step3) j[, te := t.test(value~vs), by=variable][]