这是一个示例数据框 df:
df <- structure(list(x = 1:30, y = 101:130, g = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("A", "B", "C"), class = "factor")), .Names = c("x", "y", "g"), row.names = c(NA, -30L), class = "data.frame")
我希望能够获取筛选数据中每个组的10个最小的y值。
但是
df2 <- df %>% filter(x>3) %>% group_by(g) %>% tail(y, n=10)
仅返回最后一组的行(在此情况下为C):
Source: local data frame [10 x 3]
Groups: g
x y g
18 21 121 C
19 22 122 C
20 23 123 C
21 24 124 C
22 25 125 C
23 26 126 C
24 27 127 C
25 28 128 C
26 29 129 C
27 30 130 C
我哪里做错了吗?
y
的最小值还是每个组的最后一个条目? - talattail
只会选择向量或数据框的最后一些条目(在这种情况下为最后几行),因此除非您在之前对数据进行排序,否则tail
并不一定选择最低的值(只有当它们恰好位于那个位置时才是这样)。 - talaty
值为最低的10行? - talat