在下面的测试数据框中,我试图将包含“NA”的数据帧中的每个字符串更改为“”(以使NAs为空)。替换数据帧中包含字符的每个字符串
dat <- as.data.frame(matrix(ncol=2, nrow=2))
dat$V1 <- c(" NA", "foo")
dat$V2 <- c("bar", "NA ")
dat
V1 V2
1 NA bar
2 foo NA
但是,以下命令返回一个完全空白的数据框,就好像所有字符串都包含“NA”一样。为什么会发生这种情况,什么才是正确的解决方案?
value <- "NA"
dat[grepl(value, dat)] <- ""
您正在替换此处的列... –
要进一步解释Damiano的评论,如果它们包含“NA”,则替换带有“”的列。由于每列都包含“NA”,因此您当然留下了一个空白数据框。注意,如果你用'dat $ V1 < - c(“NA”,“NA”)和'dat $ V2 < - c(“foo”,“bar”)构造一个数据帧, – aku