可能非常简单。
我正在尝试使用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
。
有什么想法吗?
答案 0 :(得分:1)
您可以使用dt <- setDT(df)[, .SD[which.max(get(value.name))], by = id]
ember g initializer router