R 抽样随机行

R 抽样随机行,r,random,subset,sampling,R,Random,Subset,Sampling,我有一个数据集,其中有多个ID,每个ID有两个观察值/值,例如: ID Test Behaviour A12.4.2 ONE 8.64 A12.4.2 TWO 7.63 A6.3.3 ONE 1.81 A6.3.3 TWO 2.47 B12.4.1 ONE 1.17 B12.4.1 TW

我有一个数据集,其中有多个ID,每个ID有两个观察值/值,例如:

 ID           Test   Behaviour     
 A12.4.2      ONE     8.64      
 A12.4.2      TWO     7.63      
 A6.3.3       ONE     1.81      
 A6.3.3       TWO     2.47      
 B12.4.1      ONE     1.17      
 B12.4.1      TWO     3.96      
 E9.4.2       ONE     13.04     
 E9.4.2       TWO     9.51
我发现随机抽样行以保留ID上的数据以及与这些ID相关联的观察数据,我可以使用:

df[示例(nrow(df),32),]


然而,我很难找到一个函数来确保每个ID的两个度量都包含在随机样本中。最后,我想要一个由16个ID组成的随机样本,每个ID有两个观察值,总共32个观察值。有人能帮忙吗?

您可以使用
示例(唯一(df$ID),16)对16个
唯一的
ID进行采样。这些可用于使用%
中的
%对df进行子集划分。由于每个ID有两个观察值/值,因此将有32行包含一个ID的两个观察值

数据:


df您可以使用
sample(unique(df$ID),16)对16个
unique
ID进行采样。这些可用于使用%
中的
%对df进行子集划分。由于每个ID有两个观察值/值,因此将有32行包含一个ID的两个观察值

数据:


df感谢您的评论-我已经在我的问题中添加了一部分输入数据。理想情况下,我希望输出的格式相同,只是作为一个子集。我希望这会有所帮助。我想您要采样的16行对不止一对,对吧?没错,我不允许泄露整个数据集!谢谢你的评论-我已经在我的问题中添加了一部分输入数据。理想情况下,我希望输出的格式相同,只是作为一个子集。我希望这会有所帮助。我想您要采样的16行对不止一对,对吧?没错,我不允许泄露整个数据集!
df[df$ID %in% sample(unique(df$ID), 16),]
#   x ID
#1  1  A
#2  2  A
#5  1  C
#6  2  C
#7  1  D
#8  2  D
#11 1  F
#12 2  F
#15 1  H
#16 2  H
#19 1  J
#20 2  J
#21 1  K
#22 2  K
#23 1  L
#24 2  L
#31 1  P
#32 2  P
#33 1  Q
#34 2  Q
#39 1  T
#40 2  T
#43 1  V
#44 2  V
#45 1  W
#46 2  W
#47 1  X
#48 2  X
#49 1  Y
#50 2  Y
#51 1  Z
#52 2  Z
df <- expand.grid(x=1:2, ID=LETTERS)