我有一个包含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"的Worker,但正如我在上面所说的,我的df有133个不同的Worker ID.我想取50个随机的工人ID并创建一个新的DF.但我不希望一行对应一个ID.相反,我想要具有该工作ID的每一行.因此,基本上我的新DF应该由50个随机的工作ID组成,我想要这些工作ID的每一行.我已经try 了样例代码,但失败了:(.提前谢谢!

推荐答案

如果您的数据为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相关问答推荐

在特定列上滞后n行,同时扩展框架的长度

向gggplot 2中的数据和轴标签添加大写和星号

terra nearest()仅为所有`to_id`列返回NA

R Sapply函数产生的值似乎与for循环方法略有不同

提取具有连续零值的行,如果它们前面有R中的有效值

根据现有列的名称和字符串的存在进行变异以创建多个新列

使用rvest从多个页面抓取时避免404错误

如何指定我的函数应该查找哪个引用表?

在GG图中绘制射线的自动程序

如何将网站图像添加到带有极坐标的面包裹条形图?

R如何计算现有行的总和以添加新的数据行

自定义gggraph,使geom_abline图层仅在沿x轴的特定范围内显示

从R中发出的咕噜声中的BUG?

在R中使用列表(作为tibble列)进行向量化?

观察器中的inaliateLater的位置

将摘要图添加到facet_WRAP gglot的末尾

如何在R中使用混合GAM模型只对固定的影响因素进行适当的预测?

使用nls()函数的非线性模型的半正态图

如何在GGPlot中控制多个图例和线型

如何在分组蜂群小区中正确定位标签