我有一个由2列组成的数据框:
> head(session_item_pairs)
session_id item_id
53 811 111502665618
78 841 111502665618
127 901 111502665618
151 931 111502665618
477 1351 111502665618
501 1351 115641561585
我需要通过session_id对数据帧进行分组,并且对于每个session_id,按照该session_id的升序返回唯一项目列表。例如对于session_id 1351,结果将是
1351 (111502665618,115641561585)
任何想法?
答案 0 :(得分:1)
尝试split
然后unique
个功能。
grouped <- split(df$item_id, df$session_id)
unique_items <- lapply(grouped, unique)
或一行
lapply(split(df$item_id, df$session_id), unique)
要sort
结果:
lapply(split(df$item_id, df$session_id), function(x) sort(unique(x)) )
答案 1 :(得分:-2)
使用子集
session_item_pairs[session_item_pairs$session_id==1321,]$item_id
您可以使用循环为所有session_ids执行此操作