我有一个大数据框,其中有一列,有一个组名称,它分组为dplyr。因此多行具有相同的组名称。为了减少数据,我想从每组的第一个元素开始提取每个第 n 个元素。有没有R way没有循环?
用序列对每一行进行子集化,会出现经常丢失每组的第一行的问题。例如
data[seq(1, nrow(data), 10), ] # Some groups start without the first row.
Input:
Val Group
1 1.0 Fruit
2 2.0 Fruit
3 3.0 Fruit
4 1.5 Veg
5 2.8 Veg
6 4.2 Veg
7 5.1 Veg
输出(每隔一个元素,注意第三行!):
Val Group
1 1.0 Fruit
2 3.0 Fruit
**3 1.5 Veg**
4 4.2 Veg
library(dplyr)
data %>% group_by(Group) %>%
slice(seq(1, n(), by = 2))
这给出:
# A tibble: 4 x 2
# Groups: Group [2]
Val Group
<dbl> <fct>
1 1 Fruit
2 3 Fruit
3 1.5 Veg
4 4.2 Veg
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)