2012-02-09 2 views
1

Я пытаюсь создать 4 новые переменные из набора данных в R, который содержит различное количество наблюдений для каждого идентификатора (ID). Я хочу обобщить эту информацию на 2 флага, которые указывают, имеет ли идентификатор наблюдение переменных типа A или B и 2 счетчика, содержащих общее количество A и B на каждый идентификатор.Создайте переменные из произвольного числа наблюдений на ID в R

ID<-c(1,1,1,1,1,1,1,2,2,2,2,2,2) 
Result<-c('A','A','B','A','A','A','A','B','B','B','B','B','B') 
DSN<-data.frame(ID,Result) 

Выходной сигнал будет:

ID A_Flag B_Flag A_Count B_Count 
    1 Y Y 6 1 
    2 N Y 0 6 

ответ

1

Вероятно, проще всего использовать xtabs:

> xtabs(~ID+Result, DSN) 
    Result 
ID A B 
    1 6 1 
    2 0 6 

Очевидно, что флаг может быть тривиально получен из вышеизложенного:

> xtabs(~ID+Result, DSN) > 0 
    Result 
ID  A B 
    1 TRUE TRUE 
    2 FALSE TRUE 
+0

Спасибо за быстрый , правильный ответ! – user1126915