r - filtering data.frame based on row_number() -
update: dplyr has been updated since question asked , performs op wanted
i´m trying second seventh line in data.frame using dplyr.
i´m doing this:
require(dplyr) df <- data.frame(id = 1:10, var = runif(10)) df <- df %>% filter(row_number() <= 7, row_number() >= 2) but throws error.
error in rank(x, ties.method = "first") : argument "x" missing, no default i know make:
df <- df %>% mutate(rn = row_number()) %>% filter(rn <= 7, rn >= 2) but understand why first try not working.
the row_number() function not return row number of each element , can't used want:
• ‘row_number’: equivalent ‘rank(ties.method = "first")’
you're not saying want row_number of. in case:
df %>% filter(row_number(id) <= 7, row_number(id) >= 2) works because id sorted , row_number(id) 1:10. don't know row_number() evaluates in context, when called second time dplyr has run out of things feed , equivalent of:
> row_number() error in rank(x, ties.method = "first") : argument "x" missing, no default that's error right there.
anyway, that's not way select rows.
you need subscript df[2:7,], or if insist on pipes everywhere:
> df %>% "["(.,2:7,) id var 2 2 0.52352994 3 3 0.02994982 4 4 0.90074801 5 5 0.68935493 6 6 0.57012344 7 7 0.01489950
Comments
Post a Comment