如何调用随机抽样行的索引?

时间:2015-12-28 19:32:47

标签: r

假设我从包含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), ]

,这不仅不优雅,甚至不起作用(错误:“较长的物体长度不是较短物体长度的倍数”)。

1 个答案:

答案 0 :(得分:2)

给出样本抽奖:

"content_highlight_bar" : true 

您可以通过选择所有行名称进行子集化,但随机样本中的行名称除外:

> df_samp
  col1 col2
7    t    j
8    a    w
3    k    y