Создание значений переменной, привязанной к некоторому идентификатору идентификатора - PullRequest
3 голосов
/ 24 октября 2011

ОК - у меня есть фрейм данных в R, который выглядит примерно так:

  id  age v1 v2 ...
12345  31  
12345  32  
12345  32  

Я хотел бы иметь возможность просмотреть все идентификаторы в этом DF и установить для всех значений age, сопоставленных с определенным ID, первое (или самое низкое, в данном случае, как следствие как заказывается DF) значение age, соответствующее этому ID. Таким образом, приведенный выше пример станет

  id  age v1 v2 ...
12345  31  
12345  31 
12345  31  

У меня есть ощущение, что это можно сделать с помощью plyr (или подобного), хотя мой мозг сейчас зажарен, и я понимаю, что, возможно, это не лучший способ сделать это, и при этом это не может быть самым простым. Какие-либо предложения? ТИА.

Ответы [ 2 ]

4 голосов
/ 24 октября 2011

Это для «первого», хотя вы, возможно, хотели «самого низкого».

ave(dat$age, dat$id, FUN=function(x) head(x, 1))
[1] 31 31 31
dat$age <- ave(dat$age, dat$id, FUN=function(x) head(x, 1))
3 голосов
/ 24 октября 2011

Ты прав, plyr выполнит свою работу.

  > dt
      id age
    1  1  20
    2  1  21
    3  2  25
    4  2  26
    > ddply(dt, .(id), transform, age = min(age))
      id age
    1  1  20
    2  1  20
    3  2  25
    4  2  25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...