【发布时间】:2014-11-17 14:42:54
【问题描述】:
更新:dplyr 自提出此问题以来已更新,现在按 OP 的要求执行
我正在尝试使用dplyr 在data.frame 中获取第二到第七行。
我正在这样做:
require(dplyr)
df <- data.frame(id = 1:10, var = runif(10))
df <- df %>% filter(row_number() <= 7, row_number() >= 2)
但这会引发错误。
Error in rank(x, ties.method = "first") :
argument "x" is missing, with no default
我知道我很容易做到:
df <- df %>% mutate(rn = row_number()) %>% filter(rn <= 7, rn >= 2)
但我想了解为什么我的第一次尝试不起作用。
【问题讨论】:
-
df %>% filter(row_number() %in% 2:7) -
我也可以这样做,但为什么
df <- df %>% filter(row_number() <= 7, row_number() >= 2)错了? -
我不知道这背后的真正原因。双重
filter似乎有效。 -
这是一个错误。请在github.com/hadley/dplyr/issues 上提出问题
-
我认为有它是有用的,只要清楚,它现在已经过时,这样,寻求帮助的人(像我一样)可以看到这不是问题.为了清楚起见,我编辑了帖子。