【发布时间】:2020-11-15 17:34:54
【问题描述】:
我有四个变量(length1、length2、length3 和 length4)并且想在我的数据框中添加第五列,其中包含每行四个长度的最大值。 当我跑步时
length <- data.frame(length1, length2, length3, length4)
length$maximum <- apply(length, 1, max, na.rm = TRUE)
我获得了一些 -Inf 值。我猜这发生在所有变量都具有 NA 值的那些行中。我该怎么做才能用 NA 替换 length$maximum 变量中的 -Inf 值? 我试过了:
my.max <- function(x) ifelse( !all(is.na(x)), max(x, na.rm=T), NA)
length$maximum <- apply(length, 1, my.max, na.rm = TRUE)
但它似乎不起作用。
【问题讨论】:
-
您可以使用您的第一种方法。如果您知道出现
-Inf且仅当只有NAs 并且您想将这些值设置为NA,只需执行length$maximum[!is.finite(length$maximum)] <- NA