2015-02-20 2 views
1

У меня есть набор данных data1, как показано нижесовокупности не показывает правильные результаты

 Id Results 
     1232 Az 
     1232 Ca 
     1223 Hi 
     1223 Az 
     8477 Ca 
     8477 Ca 

Я использовал статистическую функцию к группе они на основе Id,

 aggregate(Results~ Id, data=data1, FUN=head,1) 

Я ожидал

 Id  Results 
     1232 Az,Ca,Hi 
     1223 Hi, Az 
     8477 Ca, Ca 

Я вижу

 Id  Results 
     1232 Az 
     1223 Az 
     1223 Ca 
+1

Не можете повторить это. Я вижу структуру (список (Id = c (1223L, 1232L, 8477L), Results = structure (c (3L, 1L, 2L), .Label = c ("Az", "Ca", "Hi"), class = "factor")) .Names = c ("Id", "Результаты"), row.names = c (NA, -3L), class = "data.frame") '. – jbaums

+0

@TyVoss Я эхо Jbaums. Он не может воспроизводиться с вашим кодом. Я получаю только один элемент для результатов – akrun

+0

@TyVoss, почему вы ожидаете 'Hi' в группе' 1232'? Я думаю, что вы, вероятно, после этого: 'aggregate (Results ~ Id, d, paste0, collapse = ',')'. – jbaums

ответ

1

Единственное значение для каждой группы - это то, что вы должны ожидать, если функция, которой вы переходите на aggregate, равна head(x, 1).

Если вместо этого вы хотите строку значений, разделенных запятыми, относящихся к каждой группе, вы можете использовать:

aggregate(Results ~ Id, d, paste0, collapse=',') 

#  Id Results 
# 1 1223 Hi,Az 
# 2 1232 Az,Ca 
# 3 8477 Ca,Ca  
Смежные вопросы