我有一个有几列的数据集,每列有数千个数据。我想随机选择一些样本。但是,每列中存在一些相同的值。如何让R在不替换的情况下选择样本,同时确保这些相同的值可以随机选择?
例如,一个名为df:
的数据集df <- c(1,2,3,3,3,4,5,6,6)
我如何使用sample(x=df, size=5, replace=False)
来获得这样的结果:
newdf: #> [1] 3 3 2 5 6
。我只想让R可以随机选择相同的值不管它们在结果中出现多少次。但不使用replace=TRUE
,因为我不想重复这样的值:newdf: #> [1] 1 1 2 2 3
.
我是一个R的新手,如果你能给我一些建议我会很感激的!
@RonakShah的评论是正确的-只要使用sample(df, 5, replace = FALSE)
。
解释:
想象df
中的每个值都被索引,1,2,3,…n .
抽样不替换只是指每次从df
中抽取一个特定索引处的值。如果索引1处的值被绘制,则df
中的索引1不再是序列中后续绘制的有效绘制。
所以replace
参数并不关注重复的值,而是确保所选df
没有重复的索引。
From the docs:
选择下一个项目的概率与剩余项目的权重成正比。