向量索引和subset函数
向量的名字
> height<-c(155,186,177,169)
> names(height)
NULL
> names(height)<-c('Mary','Jason','Tom','Tina')
> height
Mary Jason Tom Tina
155 186 177 169
另一种类似与字典创建的命名方式
> s<-c(Tony=87,Mary=92,Lisa=80,John=78,Victor=93)
> s
Tony Mary Lisa John Victor
87 92 80 78 93
names(height)<-c(‘Mary’,‘Jason’,‘Tom’,‘Tina’)
本质上是调用了一个置换函数'name<-'()
向量索引
需要注意[]内是向量和负数以及逻辑型向量的情况,负数表示排除绝对值下标的索引
> x<-101:108
> x
[1] 101 102 103 104 105 106 107 108
> x[c(3,5,8)]
[1] 103 105 108
> x[-4]
[1] 101 102 103 105 106 107 108
> x[c(-2,-4,-7)]
[1] 101 103 105 106 108
> x[c(F,T,T,F,T,T,F,F)]
[1] 102 103 105 106
> x[x%%2==0]
[1] 102 104 106 108
> x%%2 # 得到一个逻辑型向量
[1] 1 0 1 0 1 0 1 0
> x%%2==0
[1] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE
> x[c(F,T)]
[1] 102 104 106 108
通过which索引也可以定位到需要的向量:
> which(x%%2==0)
[1] 2 4 6 8
> x[which(x%%2==0)]
[1] 102 104 106 108
直接利用name进行索引
> height
Tony Mary Lisa Victor John
180 166 160 175 172
> height["Mary"]
Mary
166
> height[c("Tony","John")]
Tony John
180 172
利用索引可以单独修改,也可以批量修改
> s[1:4]<-c(80,90)
> s
Tony Mary Lisa John Victor
80 90 80 90 93
> s[-2:-3]<-100
> s
Tony Mary Lisa John Victor
100 90 80 100 100
subset()函数
subset(x,subset) 可以接受向量、列表、矩阵、数量框。
函数的第二个参数subset是一个逻辑型向量。
subset不返回NA
> x<-c(86,70,80,NA,90,NA)
> x[x>=85] #86 NA 90 NA
[1] 86 NA 90 NA
> subset(x,x>=85) #86 90
[1] 86 90
对于其余数据类型: