看到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只接受列名而不是字符,我不知道如何传递参数?
答案 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)]