【发布时间】:2021-09-02 22:45:27
【问题描述】:
我知道如何通过对某些行进行采样来对数据框进行子集化。但是,我正在努力寻找一种简单(最好是 tidyverse)的方法来将采样信息作为新列添加到我的数据集中,即我只想用“1”填充一个新列,如果它被采样和“0” " 如果不是。
我目前有这个,但感觉过于复杂。请注意,在示例中,我想每组采样 3 行。
df <- data.frame(group = c(1,2,1,2,1,1,1,1,2,2,2,2,2,1,1),
var = 1:15)
library(tidyverse)
df <- df %>%
group_by(group) %>%
mutate(sampling_info = sample.int(n(), size = n(), replace = FALSE),
sampling_info = if_else(sampling_info <= 3, 1, 0))
【问题讨论】: