使用R数据表计算最大行时避免NA

时间:2018-07-27 17:34:28

标签: r data.table

我需要获取行的列名,其中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)

0 个答案:

没有答案