【发布时间】:2022-01-14 01:15:21
【问题描述】:
我试图从忽略 NA 值的其他指定列中获取由最小值组成的列。当我这样做时:
foo = data.frame(A = c(1, 2, 3, NA), B = c(3, NA, 2, NA), C = c(NA, 1, 2, 3))
foo$MIN = apply(foo[c("A", "B")], 1, min)
我明白了:
A B C MIN
1 1 3 NA 1
2 2 NA 1 NA
3 3 2 2 2
4 NA NA 3 NA
(请注意,我包含了一个多余的“C”列来说明我希望能够指定列,在本例中为 A 和 B。)
这里的问题是第 2 行中的 MIN 值是 NA,而我希望它是 2。我很高兴第 4 行中的 MIN 是 NA,因为 A 和 B 值都有NA。但是在 2 和 NA 之间选择时,我想要 2。
【问题讨论】:
-
foo$MIN = apply(foo[c("A", "B")], 1, min, na.rm = TRUE) -
将
na.rm = TRUE添加到您的申请中。所有参数都推送到函数调用,请参阅help(apply)和help(min) -
添加
na.rm=T是不够的,因为 OP 希望第 4 行是NA,而不是-Inf。