我有一个带有列的大数据框,其中包含一个组名,该组名与 dplyr 分组。因此,多行具有相同的组名。为了减少数据,我想从每个组的第一个元素中提取第n个元素。有没有循环的 R方式吗?
用序列对每一行进行子集化的问题是,经常错过每组的第一行。例如
data[seq(1, nrow(data), 10), ] # Some groups start without the first row.
输入:
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
关于r - 如何从分组数据帧中的每个组中获取第n个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57066541/