【问题标题】:Dplyr downsample in pipeline管道中的 Dplyr 下采样
【发布时间】:2018-04-13 18:19:06
【问题描述】:

我有一个像这样的小标题:

tibble(a = c(1,2,3,4,5), b = c(1,1,1,2,2))

我想按“b”列对数据进行随机下采样,如下所示:

tibble(a = c(1,3,4,5), b = c(1,1,2,2))

如何在不更改 tibble 数据类型的情况下完全在 Dplyr 管道中执行此操作?

【问题讨论】:

    标签: r statistics dplyr downsampling


    【解决方案1】:

    这将获得最小的组大小(按b 分组),并从每个组中采样许多元素。不清楚这是不是你想要的。

    如果你的小标题被称为df

    df %>% 
      group_by(b) %>% 
      add_count %>% 
      slice(sample(row_number(), min(.$n))) %>% 
      select(-n)
    

    【讨论】:

    • 这比我的好多了。我删除它是因为 OP 的条件不是很清楚
    猜你喜欢
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2019-11-18
    • 1970-01-01
    相关资源
    最近更新 更多