我有一个带有列的数据框,x1, x2, group我想生成一个新的数据框,其中有一个额外的列rank,表示x1其组中的顺序.
还有一个相关的问题在这里,但接受的答案似乎不工作了.
直到这里,没关系:
library(dplyr)
data(iris)
by_species <- iris %>%
arrange(Species, Sepal.Length) %>%
group_by(Species)
Run Code Online (Sandbox Code Playgroud)
但是当我试图按组排名时:
by_species <- mutate(by_species, rank=row_number())
Run Code Online (Sandbox Code Playgroud)
错误是:
排名错误(x,ties.method ="first",na.last ="keep"):
缺少参数"x",没有默认值
更新
问题是dplyr和之间存在一些冲突plyr.要重现错误,请加载两个包:
library(dplyr)
library(plyr)
data(iris)
by_species <- iris %>%
arrange(Species, Sepal.Length) %>%
group_by(Species) %>%
mutate(rank=row_number())
# Error in rank(x, ties.method = "first", na.last = "keep") :
# argument "x" is missing, with no default
Run Code Online (Sandbox Code Playgroud)
卸载plyr它的工作原理:
detach("package:plyr", unload=TRUE)
by_species <- iris %>% …Run Code Online (Sandbox Code Playgroud)