4

在看到按升序/降序快速排序 data.table之后

我想包装

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

或者

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

变成一个函数,比如d.setkey(data, key)

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

4

1 回答 1

4

您可以使用get

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

或者 :

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

或者更一般地使用表达式:

expr <- substitute(x := -x,  list(x=as.name("Month")))
DT[,eval(expr)]
于 2013-11-12T13:10:47.423 回答