位置索引
掌握单个值索引,连续值索引,不连续值的索引,以及剔除数值的操作
> x=c(42,7,64,9)
> x[1]#单个值索引
[1] 42
> x[2:4]#连续值索引
[1] 7 64 9
> x[c(1,3)]#不连续值索引
#索引,可以这么理解[]里面放的是向量形式的
[1] 42 64
> x[-1]#-号表示剔除向量中索引的值
[1] 7 64 9
> x[-(2:4)]
[1] 42
> x[-c(1,3)]
[1] 7 9
布尔筛选及应用
布尔筛选
> x[x>10]
[1] 42 64
> x>10 & x<60
[1] TRUE FALSE FALSE FALSE
> x[x>10 & x<60]#相当于逻辑向量做下标
[1] 42
>
应用1:求100个随机数中小于0.5的数求和
> y=runif(100,min = 0,max = 1)#产生长度为100,最小值0最大值1的向量
> sum(y[y < 0.5])
[1] 14.58861
应用2: 去掉向量中的NA值
> x=c(1,5,3,7,2,NA,9)
> is.na(x)
[1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE
> x[!is.na(x)]
[1] 1 5 3 7 2 9
关于NA值应用的补充:将NA值替换成0
x[is.na(x)]=0#采用赋值的方法
which.max,which.min,which函数
which():返回逻辑向量中TRUE的位置,()中填入的应该是逻辑对象
which.min/which.max:返回数值向量的最大值与最小值的索引值,注意与max/min函数的不同之处在于which.min/which.max自动忽略NA值,而max/min函数需要调整默认参数
> x=c(1,5,3,7,2,NA,9)
> max(x,na.rm=T)
[1] 9
> which.max(x)
[1] 7
> which(is.na(x))
[1] 6
名称索引
向量可通过名称索引和位置索引
> fruit=c(5,10,1,20)
> names(fruit)=c("orange","banana","apple","peach")#设置向量名称的第一种方式
> fruit
orange banana apple peach
5 10 1 20
> x=c("first"=3,"second"=0,"third"=9)#设置向量名称的第二种方式
> x
first second third
3 0 9
> fruit[2]
banana
10
> fruit["banana"]
banana
10