行中某些值的函数

时间:2011-09-01 11:02:04

标签: r

我有一个如下所示的paneldata:

(只有大幅削减我的问题)

Persno 122 122 122 333 333 333 333 333 444 444 
Income 1500 1500 2000 2000 2100 2500 2500 1500 2000 2200
year 1 2 3 1 2 3 4 5 1 2

我需要一个命令或函数来识别不同的人。对于具有相同Person的所有行,我想给出平均收入。

非常感谢。

1 个答案:

答案 0 :(得分:1)

我最喜欢的解决这类问题的工具是ddply,在plyr包中。

 library(plyr)
 p = pdata.frame(data.frame(year=rep(c(1,2,3),3), persno = c(1,1,1,2,2,2,3,3,3), income=c(1500,1500,2000,2000,2100,2500,2500,1500,2000)))
 dply(p, .(persno), summarize, mean.income = mean(income))

给出了输出

  persno mean.income
  1      1    1666.667
  2      2    2200.000
  3      3    2000.000