我有两个问题:
问题1:我正在尝试如何识别任何常见的缺失值格式,如NA、"“、”“。
我认为is.na会识别所有这些格式,有人能为我指出正确的方向吗?
问题2:我需要计算NA、"“和”“值,并列出所有这些值的位置。
我试过:
```{r, echo=TRUE,include=TRUE}和(is.na(DF))
哪个(is.na(DF))
但它只计算NA值(16),并告诉我它们所处的价值位置。
但是,我碰巧知道我的数据集中有10个值丢失了,它们的格式不是NA,而是它的“",所以丢失值的总数应该是26,我应该得到它们的值位置。
我试着用这样的方法:
sum(is.na(DF, na.strings=c("NA"," ","")))但是我得到了错误:is.na中的错误(DF,na.strings = c("NA",“","")):传递给'is.na‘的2个参数,它需要1
任何关于在这里做什么的想法都会令人惊奇。
谢谢!
发布于 2022-04-05 11:01:27
is.na只检测NA值,不检测" "或""。您可以使用" "和""将gsub转换为NA,然后使用is.na
v = c(NA, "", " ", "A")
gsub("^$|^ $", NA, v)
# [1] NA NA NA "A"
sum(is.na(gsub("^$|^ $", NA, v)))
# [1] 3
which(is.na(gsub("^$|^ $", NA, v)))
# [1] 1 2 3说明:^$捕获空字符串(^定义字符串的开头,$捕获结尾)。^ $用一个空格捕获一个字符串(具有相同的锚具有相同的用途),而|是OR操作符。
https://stackoverflow.com/questions/71750549
复制相似问题