2.7NA与NULL值
NA:缺失值
向量中有一个缺失值NA,会导致mean()等函数计算出的结果均为NA。但可将na.rm参数设置为TRUE,可以跳过缺失值,计算其余元素。
NULL:空值,当作不存在
NULL的一个用法是在循环中创建向量,其中每次迭代都在这个向量上增加一个元素。
z <- NULL
for (i in 1:10) if (i %% 2 == 0) z <- c(z,i)
2.8 筛选
(1)“筛选索引”,就是你要筛选出来的元素需要满足的条件,比如x[x>8]
x[x>8] <- 0
注意,这种筛选方式不会自动排除NA。
x <- c(1,3,5,NA)
x[x>4]
#[1]5 NA
(2)subset()筛选,可以自动排除NA
x <- c(1,3,5,NA)
subset(x,x>4)
#[1]5
(3)which 返回TRUE的下标(位置)
which(x>4)
#3
在一个向量中找出满足一定条件的元素首次出现的位置which(x>4)[1]
在一个向量中找出满足一定条件的元素x[which(x>4)[1]]
2.9 向量化的ifelse()函数
ifelse(b,u,v),其中b是一个布尔值向量,而u和v是向量。
该函数返回的值也是向量,如果b[i]为真,则返回值的第i个元素为u[i],如果b[i]为假,则返回值的第i个元素为v[i]。
x<-1:10
ifelse(x%%2==0,5,12)
这段代码的意思是以1:10为输入,如果是偶数则输出5,是基数则输出12。
2.10 向量相等
除==外还可以用identical,是判断是否完全一致,注意默认的数字类型是双精度型,用:产生的则是整数型,不同数据类型来判断,会产生不相等的结果。
2.11 向量元素的名称
用names函数可以给元素命名。
2.12 关于c()的更多内容
如果传递到c()中的参数有不同的类型,则它们将被降级为同一类型,该类型最大限度地保留它们的共同特性。混合整数型和字符型,R会选择把它们都转换为字符型。另外,c()函数对向量有扁平化的效果,c(1,4,c(0.5,1))会生成1,4,0.5,1。
网友评论