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的未来解决方案:)谢谢,我没有意识到这一点!我将编辑我的答案,以便将来包含该答案。:)