我有一个数据框,里面有一个叫做饮食的因子,假设饮食因子的水平有“食草动物”、“食肉动物”和“杂食动物”,那么有3个食草动物、6个食肉动物和8个杂食动物。
基本上,我想过滤这个 Dataframe ,使水平,有5个以下的计数保持不变和水平,有5个以上的计数得到过滤下来5(最好是随机)。
例如,我会从3种食草动物,6种食肉动物,8种杂食动物
diet factor2
1 herbivore a
2 herbivore a
3 herbivore a
4 carnivore a
5 carnivore a
6 carnivore a
7 carnivore a
8 carnivore a
9 carnivore a
10 omnivore a
11 omnivore a
12 omnivore a
13 omnivore a
14 omnivore a
15 omnivore a
16 omnivore a
17 omnivore a
3种草食动物,5种食肉动物,5种杂食动物。
diet factor2
1 herbivore a
2 herbivore a
3 herbivore a
4 carnivore a
5 carnivore a
6 carnivore a
7 carnivore a
8 carnivore a
9 omnivore a
10 omnivore a
11 omnivore a
12 omnivore a
13 omnivore a
2条答案
按热度按时间blpfk2vs1#
我们可以使用
slice_sample
,它在dplyr 1.1.0中获得了一个by
参数:结果
既往(pryr?)死亡:
u5rb5r592#
另一种
dplyr
解决方案:在
data.table
中,我们可以使用rowid
:x一个一个一个一个x一个一个二个x