我正在使用R,我有一个数据集,看起来像这样。。。
group col_2 col_3 col_4
A p_m 12 21
A q_x 11 21
A i_z 13 22
A q_z 11 24
A p_x 14 25
A i_m 15 26
A q_m 17 28
A p_x 16 29
A i_z 12 23
A q_m 14 23
A q_x 13 25
A p_z 11 25
A i_z 15 26
A q_m 17 28
A q_x 14 29
A p_x 13 30
A i_m 15 26
A q_m 17 28
A p_x 16 29
A i_z 12 23
A q_x 13 25
A p_z 11 25
A i_z 15 26
A q_m 17 28
A q_z 11 24
A p_x 14 25
A i_m 15 26
A q_x 11 21
A i_z 13 22
A q_z 11 24
A p_x 13 30
A i_m 15 26
A q_m 17 28
A p_x 16 29
A i_z 12 23
好的,所以我需要根据col_2随机选择12行。我需要6个以"0"开头的随机行;p〃;在col_ 2和以"0"开头的6个随机行中;q〃;在col2。我用sample_n尝试了不同的方法,但我找不到从不同的代码中具体选择6和6的方法。
任何帮助都会很棒。
首先使用dput()
:使数据可再现
dta <- structure(list(group = c("A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A"), col_2 = c("p_m", "q_x", "i_z", "q_z", "p_x", "i_m", "q_m",
"p_x", "i_z", "q_m", "q_x", "p_z", "i_z", "q_m", "q_x", "p_x",
"i_m", "q_m", "p_x", "i_z", "q_x", "p_z", "i_z", "q_m", "q_z",
"p_x", "i_m", "q_x", "i_z", "q_z", "p_x", "i_m", "q_m", "p_x",
"i_z"), col_3 = c(12L, 11L, 13L, 11L, 14L, 15L, 17L, 16L, 12L,
14L, 13L, 11L, 15L, 17L, 14L, 13L, 15L, 17L, 16L, 12L, 13L, 11L,
15L, 17L, 11L, 14L, 15L, 11L, 13L, 11L, 13L, 15L, 17L, 16L, 12L
), col_4 = c(21L, 21L, 22L, 24L, 25L, 26L, 28L, 29L, 23L, 23L,
25L, 25L, 26L, 28L, 29L, 30L, 26L, 28L, 29L, 23L, 25L, 25L, 26L,
28L, 24L, 25L, 26L, 21L, 22L, 24L, 30L, 26L, 28L, 29L, 23L)), class = "data.frame", row.names = c(NA,
-35L))
现在识别以"0"开头的值;p〃;以及";q〃;并绘制样本:
psam <- sample(which(strtrim(dta$col_2, 1) == "p"), 6)
dta[psam, ]
# group col_2 col_3 col_4
# 26 A p_x 14 25
# 22 A p_z 11 25
# 16 A p_x 13 30
# 12 A p_z 11 25
# 5 A p_x 14 25
# 19 A p_x 16 29
qsam <- sample(which(strtrim(dta$col_2, 1) == "q"), 6)
dta[qsam, ]
# group col_2 col_3 col_4
# 10 A q_m 14 23
# 11 A q_x 13 25
# 21 A q_x 13 25
# 33 A q_m 17 28
# 14 A q_m 17 28
# 30 A q_z 11 24