Функция для определенных значений в строках - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть данные панели, которые выглядят следующим образом:

(Только существенное сокращение для моего вопроса)

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

Мне нужна команда или функция для распознавания другого человека.Для всех рядов с одним и тем же лицом я хотел бы указать средний доход.

Большое спасибо.

1 Ответ

1 голос
/ 01 сентября 2011

Мой любимый инструмент для решения подобных проблем - 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...