作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
dummy [1] NA "MGM" NA "M" NA >ifelse(dummy == "NA", -6ren">
>dput(dummy)
c(NA, "MGM", NA, "M", NA)
>dummy
[1] NA "MGM" NA "M" NA
>ifelse(dummy == "NA", 0, 1)
NA 1 NA 1 NA
NA
值为 0,其他值为 1。但是,我不知道这些
NA
到底是什么字符是?正如您在上面看到的,它们不是
"NA"
.当我尝试
dput(dummy[1])
我得到
NA_character_
.我该怎么做才能让 ifelse 语句识别那些
NA
年代?
最佳答案
在 R 中,没有任何东西等于 NA
(当我们不知道它是什么时,怎么可能是 ==
到 NA
?)但它可能等于“NA”(缩写中的两个字母的字符值北美。NA
(无引号)是一个特殊的缺失值占位符,实际上有不同的风格,每个原子类都有一个。
?NA # where you can read about the other flavors of NA
NA_character_
#[1] NA
正如 C_Z_ 所指出的,您可以并且应该使用 is.na() 来检测这些特殊(非)值。您的
ifelse
测试将在字符向量的值为“NA”的任何位置返回 0,但使用“==”对
NA
进行的相等性测试将始终返回 NA。
> dummy == NA
[1] NA NA NA NA NA
这些可能不那么令人费解:
> ifelse( is.na(dummy), 0, 1)
[1] 0 1 0 1 0
> 0+!is.na(dummy) # using 0+... to coerce logical to numeric
[1] 0 1 0 1 0
关于R:什么是NA_character_?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37400665/
在 Match NA's in switch() loop ,回答者显示使用 `NA`在 switch将匹配缺失值。然而,"NA"也匹配。我有一个字符向量,其中包含字符串 "NA"以及缺失值 NA .
我是一名优秀的程序员,十分优秀!