考虑以下data.frame:
> head(dtrain)
content_id item_age item_ctr likes clicks no_clicks event
1 11201926 461540 0.02787456 1 24 837 0
2 11201926 462497 0.02784223 1 24 838 0
3 11201926 473215 0.02780997 1 24 839 0
4 11201926 532983 0.02777778 1 24 840 0
5 11201926 536696 0.02774566 1 24 841 0
6 11201926 545545 0.02771363 1 24 842 0
我想通过content_id拆分数据,只需要以下命令
result <- split(dtrain , f = dtrain$content_id )
但是我想只保留dtrain中的数据,其中content_id在列表1000出现(在dtrain中)。换句话说,在dtrain中存在相同的content_id超过1000次。
最后,我将按content_id拆分数据,其中每个拆分将在列表中出现1000次(因为这是聚合条件)
答案 0 :(得分:3)
您可以先使用dplyr
过滤数据框,只保留包含1000条或更多记录的内容组:
temp <- dtrain
%>% group_by(content_id)
%>% filter(n() >= 1000)
然后按原样继续:
result <- split(temp, f=temp$content_id)