原始表:
ID------REMARK
1------ A
2------ B
1-------AG
3-------V
2-------BS
1--------E
4--------B
4--------BS
必填表:
ID......REMARK
1-------A,AG,E
2-------B,BS
3-------V
4-------B,BS
然后根据频繁出现的序列列出:
REMARK......OCCURRENCES
A,AG,E-------1
B,BS---------2
V -----------1
答案 0 :(得分:3)
这是一种方法。 dat
是数据框的名称:
res1 <- aggregate(REMARK ~ ID, dat, paste, collapse = ",")
# ID REMARK
# 1 1 A,AG,E
# 2 2 B,BS
# 3 3 V
# 4 4 B,BS
table(res1$REMARK)
#
# A,AG,E B,BS V
# 1 2 1
答案 1 :(得分:1)
以下是plyr
解决方案:
library(plyr)
dt.agg <- ddply( dt, .(ID), summarise, Remark = paste( REMARK, collapse = ",", sep = "" ) )
ddply( dt.agg, .(Remark), nrow )
Remark V1
1 A,AG,E 1
2 B,BS 2
3 V 1