我需要获取行的列名,其中row具有最大值,This Answer非常适合我的情况。唯一的事情是My data.table中包含NA,而我一直在通过忽略NA来使其正常工作
数据
set.seed(45)
DT <- data.table(matrix(sample(10, 10^7, TRUE), ncol=10))
DT[, MAX := colnames(.SD)[max.col(.SD, ties.method="first")]]
DT$VX <- NA
代码中不包含NA的代码
DT[, MAX := colnames(.SD)[max.col(.SD, ties.method="first")]]
下面是我在数据中尝试使用N.A。
> DT[, MAX := colnames(.SD)[max.col(replace(.SD, is.na(DT), -Inf), ties.method="first")]]
Warning message:
In max.col(replace(.SD, is.na(DT), -Inf), ties.method = "first") :
NAs introduced by coercion
> DT[, MAX := colnames(.SD)[max.col(.SD,na.rm=TRUE, ties.method="first")]]
Error in max.col(.SD, na.rm = TRUE, ties.method = "first") :
unused argument (na.rm = TRUE)