试图运行许多anovas并获得每行的F值

时间:2017-02-17 17:59:12

标签: r anova

我使用的数据集看起来如下所示。现在我知道这不是R喜欢的那种格式。我知道如何整理数据,但后来我不知道我为了获得每个unique_id 的F统计量而做了什么,这是我的目标。有一个简单的方法吗?否则有一种方法我可以使用某种类型的apply函数独立整理每一行,执行anova,然后将F统计数据添加为新列?

unique_id   heart   heart   heart   kidney  kidney  kidney  cortex  cortex  cortex
373020.8    1.39    1.18    1.30    2.71    2.96    2.52    1.97    1.67    1.44
371588.9    1.93    2.35    2.50    2.54    1.63    2.23    2.68    2.89    1.86
367772.8    0.42    0.51    0.97    1.02    0.03    0.82    0.01    0.90    1.01

1 个答案:

答案 0 :(得分:0)

我偏向于data.tables,您可以在融化数据后使用DT轻松完成此操作。这是我的看法,DT作为您的data.table包含您提供的信息。

DT <- dt<- melt(dt, 
      id.vars = c("unique_id"),
      measure.vars = c("heart","cortex","kidney"))

DT[,fstat:=summary(aov(value~variable))[[1]][1,"F value"],by=unique_id]

这是通过unique_id计算F-Stat并且应该有效。