我通过FUN =排名到ave,我如何建立tie.methods =" first"

时间:2017-02-09 01:43:31

标签: r rank

也许这是不可能的,但我想在ave中使用rank作为参数时指定一个tie方法。

即。

df <- ave(df$subset, df$subset2, FUN = rank, ties.method = "first)

ave似乎没有接受额外的排名参数。

1 个答案:

答案 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.tabledplyr

等包裹解决方案不需要此匿名电话
library(data.table)
setDT(df)[, newCol := frank(subset, ties.method = "first"), by = subset2]