【问题标题】:split data by "column" with an aggregated condition [duplicate]使用聚合条件按“列”拆分数据[重复]
【发布时间】:2018-03-14 07:11:22
【问题描述】:

考虑以下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 中)。换句话说,相同的 content_id 在 dtrain 中出现超过 1000 次。

最后,我将按 content_id 拆分数据,其中每个拆分将在列表中出现 1000 次(因为这是聚合条件)

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    您可以先使用dplyr 过滤您的数据框,以仅保留具有 1000 条或更多记录的内容组:

    temp <- dtrain
        %>% group_by(content_id)
        %>% filter(n() >= 1000)
    

    然后照常继续:

    result <- split(temp, f=temp$content_id)
    

    【讨论】:

    • 感谢优雅的解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2015-11-12
    • 2019-06-12
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    相关资源
    最近更新 更多