自己如何分析不能一眼理解的代码
理解代码在于拆解
##自己写个函数
a<-function(x){sum(x=="NA")}
##构建一个向量
x1<-c(1:5,NA)
x2<-c(1:5)
##构建一个矩阵
x3<-matrix(c(1:18,NA,NA),nrow = 4)
##测试函数功能
a(x1)#得到结果为NA
## [1] NA
a(x2)#得到结果为0
## [1] 0
##拆解来看
sum(x1=="NA")
## [1] NA
sum(x2=="NA")
## [1] 0
##进一步拆解
x1=="NA"#做逻辑判断,为非NA则为FALSE,但如果为NA,则返回NA
## [1] FALSE FALSE FALSE FALSE FALSE NA
x2=="NA"#全为FALSE
## [1] FALSE FALSE FALSE FALSE FALSE
##因此代码的含义为返回NA则为存在NA,返回值为0则无NA
##如果判断的是其它值呢
x1=="1"##同样发现如果==成立,则返回NA
## [1] TRUE FALSE FALSE FALSE FALSE NA
##总结 ==法可用于判断是否
##注意is.na与x=="NA"的区别
##is.na时若为na则返回为TRUE
is.na(x1)
## [1] FALSE FALSE FALSE FALSE FALSE TRUE
sum(is.na(x1))##判断NA的个数
## [1] 1