如何将“数据表中的降序排序”包装到函数中?

时间:2013-11-12 12:46:28

标签: r data.table

看到Sort a data.table fast by Ascending/Descending order

我想包装

X <- X[order(Year, MemberID, -Month)]

X[,Month:=-Month]
setkey(X,Year,MemberID,Month)
X[,Month:=-Month]

进入一个函数,如d.setkey(data, key)

但是,似乎order:= rhs只接受列名而不是字符,我不知道如何传递参数?

1 个答案:

答案 0 :(得分:4)

您可以使用get

DT[, "Month" := -get("Month"),with=TRUE]

或者:

DT[,`:=`("Month"=-get("Month"))]

或者更常见的使用表达式:

expr <- substitute(x := -x,  list(x=as.name("Month")))
DT[,eval(expr)]