data.table SD which.mac具有列名

时间:2017-03-24 22:32:23

标签: r dataframe data.table

可能非常简单。

我正在尝试使用R data.table的{​​{1}}来保留某一列中具有最大值的行。

这是我的.SD

data.frame

这将是set.seed(1) dt <- data.frame(id=LETTERS[sample(26,100,replace=T)],value=rnorm(100),stringsAsFactors=F) 代码:

data.table

哪种方法正常。

现在假设我不知道值列的名称是什么,而是将其作为参数传递: value.name&lt; - “value”

所以我认为这会奏效:

require(data.table)
dt <- setDT(df)[, .SD[which.max(value)],by=id]

但它正在抛出警告:

dt <- setDT(df)[, .SD[which.max(value.name)],by=id]

并返回空 In which.max(value.name) : NAs introduced by coercion

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用dt <- setDT(df)[, .SD[which.max(get(value.name))], by = id]

ember g initializer router