我有一个数据集,其中包含空值,我希望在一般说明中知道,我想将这些空值视为公共字符值而不分配或硬编码数据中的任何值,这样null也被认为是一个变量。例如:假设有两个向量:
a1 <- c("a1","a2","","a3")
a2 <- c("b1","b2","b3","b4")
a12 <- data.frame(a1,a2)
基本上,我有一个更大的数据,考虑到所有空白值为&#34; na&#34;没有为空白字段分配任何值。
答案 0 :(得分:3)
R base完成这项工作。试试a12[a12 == ""] <- NA
a12
# a1 a2
#1 a1 b1
#2 a2 b2
#3 <NA> b3
#4 a3 b4
答案 1 :(得分:1)
另一种可能性是将is.na<-
与(逻辑)索引向量一起使用。
is.na(a12) <- a12 == ""
a12
# a1 a2
#1 a1 b1
#2 a2 b2
#3 <NA> b3
#4 a3 b4
请注意,数字索引向量which(a12 == "")
也可以完成这项工作。
答案 2 :(得分:0)
dplyr解决方案:
暂时在管道内为空字符串分配NA值:
a12%>% mutate_all(. %>% ifelse(. == '',NA,.)) %>% ....
(或相同,更长但更传统的语法:
a12%>% mutate_all(function(x) ifelse(x == '', NA, x)) %>% ....
在此之后,再加上%>% ...
,您可以对数据做一些事情