在R中以长格式处理数据

时间:2012-10-25 09:49:09

标签: r data.table plyr mean

我在longformat中创建了一个数据框,它有5个变量(公司名称,关键项,原产国,年份和价值)我想要做的是创建一个表,其中包含每个项的一个关键项的值的平均值年。这是我到目前为止所做的:

for(i in dat$Year) {
  dat[dat$KeyItem == "Total Assets" & dat$Year == i, ]
  FUN1 <- mean(dat$Value, na.rm = TRUE)


}

我对R几乎没有任何经验,如果这个问题太容易,我很抱歉。 提前谢谢你们的帮助。

1 个答案:

答案 0 :(得分:2)

由于您不共享数据,因此判断您想要的内容有点难。您可能希望使用ddply包中的plyr

mean_values = ddply(dat, .(key_item, year), summarise, mn_value = mean(Value))

如果您的数据集变得非常大,您可以选择自学data.table包,这些包在这些情况下速度极快。对于中型数据集,ddply也可能较慢,但速度足够快。