2016-05-31 31 views
0

我有这样一个数据帧:得到相同价值的所有ID的数据帧

ID Value 
1 C 
2 B 
3 B 
4 A 
5 C 
6 B 
7 B 
8 A 
9 C 
10 B 
11 B 
12 A 
13 C 
14 B 
15 B 

我想获得一个新表与相同值的ID,像这样:

IDs    Value 
1,5,9,13   C 
2,3,6,7,10,11,14,15 B 
4,8,12    A 

我不介意昏迷是否分离。

感谢

回答

2

我们可以使用aggregatepaste的“ID对每个独特的 '价值'

aggregate(ID~Value, df1, FUN= toString) 
# Value       ID 
#1  A     4, 8, 12 
#2  B 2, 3, 6, 7, 10, 11, 14, 15 
#3  C    1, 5, 9, 13 

如果我们需要一个list列,使用c作为FUN

aggregate(ID~Value, df1, FUN = c) 

相同可以使用这样的其它软件包来完成作为data.table

library(data.table) 
setDT(df1)[, .(Values =toString(Value)), by = ID] 

dplyr

library(dplyr) 
df1 %>% 
    group_by(ID) %>% 
    summarise(Values = toString(Value))