更新:自从提出此问题以来,dplyr已更新,现在可以按照OP的要求进行操作

我正在尝试使用data.framedplyr中获得第二到第七行。

我正在这样做:

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)

但是我想了解为什么我的第一次尝试不起作用。

最佳答案

实际上dplyr的slice函数是为这种子设置而制作的:

df %>% slice(2:7)

(我参加聚会有点晚了,但是我想为以后的读者添加这个内容)

关于r - 根据row_number()过滤data.frame,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25994307/

10-12 14:01
查看更多