R 将特定值指定为NA
如何将df$v2==0分配为NAR 将特定值指定为NA,r,dplyr,tidyverse,data-manipulation,R,Dplyr,Tidyverse,Data Manipulation,如何将df$v2==0分配为NA v1 <- c("1","2","3","4","5") v2 <- c("a","b","c","d","0") df <- cbind(v1,v2) df 非常感谢您可以直接分配: df$v2[df$v2 == 0] <- NA df # v1 v2 #1 1 a #2 2 b #3 3 c #4 4 d #5 5 <NA> 数据 df <- data.frame(v1
v1 <- c("1","2","3","4","5")
v2 <- c("a","b","c","d","0")
df <- cbind(v1,v2)
df
非常感谢您可以直接分配:
df$v2[df$v2 == 0] <- NA
df
# v1 v2
#1 1 a
#2 2 b
#3 3 c
#4 4 d
#5 5 <NA>
数据
df <- data.frame(v1,v2, stringsAsFactors = FALSE)
df使用基本R
df[ df$v2 == 0, "v2"] = NA
您还有数据。表
(如果您的数据集非常大,建议使用此选项)使用“按引用更新”(:=
运算符)
dt由于df实际上是一个字符串矩阵
,因此可以使用:
df[df[, 2] == "0", 2] <- NA_character_
但我推荐这里发布的data.frame
解决方案之一
数据:
v1不要使用cbind
,除非您明确希望数据是矩阵。在大多数情况下,处理数据帧更好,所以使用df
df[ df$v2 == 0, "v2"] = NA
df[df[, 2] == "0", 2] <- NA_character_
df
v1 v2
[1,] "1" "a"
[2,] "2" "b"
[3,] "3" "c"
[4,] "4" "d"
[5,] "5" NA
v1 <- c("1","2","3","4","5")
v2 <- c("a","b","c","d","0")
df <- cbind(v1,v2)