2015-05-21 5 views
0

два набора данных:R: получение списка соответствующего кадра данных значений

people <- read.table(text=" 
pid 
1 
2 
3 
4 
", header=TRUE) 

comps <- read.table(text=" 
pid comp rank 
1 1 0 
1 3 1 
1 2 2 
2 4 0 
2 1 1 
2 3 2 
3 1 0 
3 2 1 
3 4 2 
", header=TRUE) 

Попытка получить кадр данных каждого уникального pid со списком их сравнений, как:

pid comps 
1 1,3,2 
2 4,1,3 
3 1,2,4 

Может «т вполне попасть ..

+2

'data [,. (Value = paste (value, collapse =" ")), by = group]' – Soheil

ответ

0

Вы можете сделать это с aggregate:

aggregate(comp~pid, comps, paste, collapse=",") 
# pid comp 
# 1 1 1,3,2 
# 2 2 4,1,3 
# 3 3 1,2,4 
+0

Отлично. Есть ли способ добавить третий столбец? – Wells

+0

@ Уверен, просто верните вектор, например. 'aggregate (comp ~ pid, comps, function (x) c (paste (x, collapse =", ")," A "))' – josliber

 Смежные вопросы

  • Нет связанных вопросов^_^