R 按组随机删除观察的百分比

R 按组随机删除观察的百分比,r,dplyr,R,Dplyr,我想根据df$length\u group从我的数据集中随机删除一定百分比的观察值。我有一个长度列表,按照它们所属的长度分类 以下是一些示例数据: length length_group 43.48231 40-45 71.94886 70-75 62.45009 60-65 52.07499 50-55 36.29884 35-40 39.74954 35-40 42.64207 40-45 5

我想根据
df$length\u group
从我的数据集中随机删除一定百分比的观察值。我有一个长度列表,按照它们所属的长度分类

以下是一些示例数据:

 length length_group
43.48231        40-45
71.94886        70-75
62.45009        60-65
52.07499        50-55
36.29884        35-40
39.74954        35-40
42.64207        40-45
54.44252        50-55
40.99404        40-45
53.82440        50-55
54.20191        50-55
65.39952        65-70
60.37424        60-65
55.48567        55-60
44.54021        40-45
55.34843        55-60
55.44153        55-60
45.12505        45-50
64.01769        60-65
33.61202        30-35
46.97908        45-50
59.30657        55-60
50.23894        50-55

我希望能够从
df$length\u组
atrandom中删除59%的值,但我正在努力找出最好的方法。我不确定是否最好的选择是
sample
,但我想从数据框中永久删除观察值,而不是仅仅选择50%。

这里有一种方法,使用
group\u by
sample\u frac
。 Basicall,你从每组中抽取分数1-0.59,得到你想要的大小

库(dplyr)
#制作一些示例数据
df
#>A、B、C
#> 60 20 19
#从每组中抽取一部分样本
a=df%>%
分组依据(长度分组)%>%
样本压裂(尺寸=1-0.59)
#新表确认了我们新的分组频率
表(a$length\u组)
#> 
#>A、B、C
#> 25  8  8

由(v0.3.0)创建于2020-08-28,这与随机抽样几乎相反,因此
sample()
绝对是一种方法。例如,随机
sample
59%的值,然后创建一个包含除这些值以外的所有值的新数据框。顺便说一句
sample\u frac()
已被取代,因此
slice\u sample(prop=0.5)
将是dplyr的未来解决方案:)谢谢,我没有意识到这一点!我将编辑我的答案,以便将来包含该答案。:)