自己如何分析不能一眼理解的代码

理解代码在于拆解

##自己写个函数
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