R 抽样随机行
我有一个数据集,其中有多个ID,每个ID有两个观察值/值,例如: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 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)