【发布时间】:2021-01-02 17:13:26
【问题描述】:
我正在处理一个数据框,该数据框的一列中有一些不可接受的数字。我想知道如何用 R 中的 NA 值替换特定范围内的数字? 比如
> V1 <- c(23,2,4)
> V2 <- c(7,2,9)
> V3 <- c(23,2,9)
> df <- data.frame(V1, V2, V3)
V1 V2 V3
[1,] 23 7 23
[2,] 2 2 2
[3,] 4 9 9
在这个数据框中,首先我想将第 1 列中超过 20 的所有数字更改为 NA(因为超过 20 的数字对于我拥有的数据不现实),然后取该列的平均值。
所以结果数据框将是:
V1 V2 V3
[1,] NA 7 23
[2,] 2 2 2
[3,] 4 9 9
第一列的平均值为 (2+4)/2=3
【问题讨论】:
-
你需要
mat[,1][mat[,1] > 20] <- NA,然后是mean(na.omit(mat[,1])) -
我正在处理一个数据框,有什么方法可以做你提到的数据框吗?
-
是的,该代码也适用于 data.frame 列