我有一个空气质量模型的颗粒物浓度估算矩阵(2601乘58).由于现实生活中的空气质量监测器无法测量低于0.1 ug/L,我需要替换矩阵中<0.1
具有零/ NA/null值的所有值.
有人建议ifelse(test, true, false)
使用逻辑语句,但是当我尝试这个时它会删除所有内容.
Har*_*lan 65
X[X < .1] <- 0
Run Code Online (Sandbox Code Playgroud)
(或NA,虽然在这种情况下0听起来更合适.)
矩阵只是具有维度的向量,因此您可以在分配时将它们视为向量.在这种情况下,您将在X上创建一个指示较小值的布尔向量,并将右侧分配给每个为TRUE的元素.
Jus*_*tin 58
ifelse
应该管用:
mat <- matrix(runif(100),ncol=5)
mat <- ifelse(mat<0.1,NA,mat)
Run Code Online (Sandbox Code Playgroud)
但我会选择Harlan对我的回答.
mat[mat < 0.1] <- NA
Run Code Online (Sandbox Code Playgroud)