也许这是不可能的,但我想在ave
中使用rank作为参数时指定一个tie方法。
即。
df <- ave(df$subset, df$subset2, FUN = rank, ties.method = "first)
ave
似乎没有接受额外的排名参数。
答案 0 :(得分:1)
我们需要在ave
中使用匿名函数调用,因为ave
不接受应该在别处工作的函数参数
with(df, ave(subset, subset2, FUN = function(x) rank(x, ties.method = "first)))
注意:注意ave
的输出已分配给&#39; df&#39;。输出将为vector
,如果我们需要数据集中的新列,则为df$newCol <-
但是,data.table
或dplyr
library(data.table)
setDT(df)[, newCol := frank(subset, ties.method = "first"), by = subset2]