r - 按 ID 选择随机样本

标签 r dataframe split sample

我有一个包含 811777 行和 133 个不同工作 ID 的数据框。我的数据框如下所示:

  PERS_ID           NEU_DATUM                             
 1      22 2022-03-01 00:00:00 
 2      22 2022-03-01 00:00:00 
 3      22 2022-03-01 00:00:00 
 4      22 2022-03-01 00:00:00 
 5      22 2022-03-01 00:00:00 
 6      22 2022-03-01 00:00:00 
 7      22 2022-03-01 00:00:00 
 8      22 2022-03-01 00:00:00 
 9      22 2022-03-01 00:00:00 
10      22 2022-03-01 00:00:00 

在前 10 行中,您只能看到一个 ID 为“22”的工作人员,但正如我上面所说,我的 df 有 133 个不同的工作人员 ID。我想随机抽取 50 个工作 ID 并创建一个新的 df。但我不想一个 ID 占一行。相反,我想要具有该工作 ID 的每一行。所以基本上我的新 df 应由 50 个随机工作人员 ID 组成,并且我想要这些工作人员的每一行。我已经尝试过示例代码,但失败了:(。提前致谢!

最佳答案

如果您的数据是df,您可以执行以下操作:

df[df$PERS_ID %in% sample(unique(df$PERS_ID), 50),]

或使用 data.table

library(data.table)
setDT(df)[PERS_ID %in% sample(unique(PERS_ID),50)]

或使用 dplyr:

library(dplyr)
df %>% filter(PERS_ID %in% sample(unique(PERS_ID),50))

您还可以使用连接方法来做到这一点;一种使用 dplyr 的方法如下所示:

inner_join(
  df, 
  df %>% distinct(PERS_ID) %>% slice_sample(n=50)
)

关于r - 按 ID 选择随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73445452/

相关文章:

r - 如何查找向量是R中的列向量还是行向量

r - 根据整数向量中数字的顺序出现创建一组指标

Jquery - 从字符串中删除特定字符串并返回新字符串

javascript - 用逗号分割字符串,但在 JavaScript 中不进行转义

jquery - 如何使用带有 2 个参数的 jQuery Split?

r - 在 ggplot 中使用预定义的调色板

R:在具有案例和观察值的数据框中计算从一个观察值到下一个观察值的变化

python - 防止随机森林回归器中数据泄漏的建议

python - 展平嵌套的 pandas 数据框列

python - 计算经常性客户