假设我从包含10行的数据框中随机抽取3行:
df <- data.frame(col1 = sample(letters, 10), col2 = sample(letters, 10))
> df
col1 col2
1 q f
2 i c
3 y l
4 k y
5 s e
6 w k
7 o x
8 e t
9 d a
10 c g
df_samp <- sample_n(df, 3)
## (sample_n is a dplyr function)
> df_samp
col1 col2
6 w k
2 i c
1 q f
如何查找或调用刚刚采样的行的索引? (在这种情况下,行6,2和1)。例如,我想从原始数据框 df 中删除或修改这三行。我试图匹配实际数据
df <- df[-which(df$col1 == df_samp$col1 & df$col2 == df_samp$col2), ]
,这不仅不优雅,甚至不起作用(错误:“较长的物体长度不是较短物体长度的倍数”)。
答案 0 :(得分:2)
给出样本抽奖:
"content_highlight_bar" : true
您可以通过选择所有行名称进行子集化,但随机样本中的行名称除外:
> df_samp
col1 col2
7 t j
8 a w
3 k y