简体   繁体   English

在 r 中随机选择数据框的 4 个唯一行

[英]Randomly selecting 4 unique rows of a data frame in r

I am working with R, and my data looks similar to this...我正在使用 R,我的数据看起来与此类似......

group  col_2  col_3   col_4
A      p_m     12      21
A      q_x     11      21
A      i_z     13      22
B      q_z     11      24
B      p_x     14      25
B      i_m     15      26
B      q_m     17      28
C      p_x     16      29
C      i_z     12      23
C      q_m     14      23
C      q_x     13      25 
D      p_z     11      25
D      i_z     15      26
D      q_m     17      28
D      q_x     14      29
E      p_x     13      30
E      i_m     15      26
E      q_m     17      28
E      p_x     16      29
F      i_z     12      23
F      q_x     13      25 
F      p_z     11      25
F      i_z     15      26
G      q_m     17      28
G      q_z     11      24
G      p_x     14      25
G      i_m     15      26
H      q_x     11      21
H      i_z     13      22
H      q_z     11      24
H      p_x     13      30

I need to randomly select 4 rows based on the group column.我需要根据组列随机 select 4 行。 In other words, my output should not contain two observations that belong to the same group.换句话说,我的 output 不应包含属于同一组的两个观察值。

So I can get a result that looks like this...所以我可以得到看起来像这样的结果......

group  col_2  col_3   col_4
A      i_z     13      22
H      i_z     13      22
D      q_m     17      28
F      p_z     11      25

I have tried things like this.我试过这样的事情。

set.seed(1234)
rndmData <- mydata %>%
  sample_n(5)

set.seed(1234)
rndmData <- mydata %>%
  sample_n(distinct(group), 5)

set.seed(1234)
rndmData <- mydata %>%
  sample_n(unique(group), 5)

However, none of them led me to the desired result.但是,它们都没有使我达到预期的结果。

Any help would be great.任何帮助都会很棒。

Sample 4 groups, then sample one row from within each group:采样 4 组,然后从每组中采样一行:

mydata %>%
  filter(group %in% sample(unique(group), size = 4)) %>%
  group_by(group) %>%
  slice_sample(n = 1) %>%
  ungroup()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM