除此之外还可以用append函数为原有的向量添加元素
> append(t,10:15)
[1] 2 543 3 5 1 10 11 12 13 14 15
Append 追加元素:
追加之后原来的向量并没有改变其元素取值;缺省关键字after时表示从向量的末尾追加元素
> c <- c(1,2,3,4)
> prod(c)
[1] 24
> append(c,6:8)
[1] 1 2 3 4 6 7 8
> append(c,9:12,after=3)
[1] 1 2 3 9 10 11 12 4
> prod(c)
[1] 24
向量下标运算:
R语言里向量下标从1开始;
例1:
创建一个向量,让其每个元素加4,求其第二个元素是几?
> (c(1,3,5,7)+4)[2]
[1] 7
例2:
元素替换
> t
[1] 2 543 3 5 1
> t[2] <- 10>
T
[1] 2 10 3 5 1
例3
> t
[1] 2 543 3 5 1
> t[c(1,3)] <- c(9,11)
> t
[1] 9 10 11 5 1
向量的逻辑运算:
> t
[1] 9 10 11 5 1
> t[t<4] #显示出t<4的数
[1] 1
> t[t>9]#显示出t>9的数
[1] 10 11
把向量中所有缺省值赋值为0
新建一个向量,其中包括缺省值
> x<-c(-1,2,5,6,NA)
> x
[1] -1 2 5 6 NA
> x[is.na(x)]<-0
> x
[1] -1 2 5 6 0
把向量中不是NA的值导入到另一个向量中去
> x<-c(-1,2,5,6,NA)
> x
[1] -1 2 5 6 NA
> u<-x[!is.na(x)]
> u
[1] -1 2 5 6
将变量s设为数值型,长度为向量X的长度,则s的默认元素都是0
> x
[1] -1 2 5 6 NA
> s<-numeric(length(x))
> s
[1] 0 0 0 0 0
分段函数的表示方法:
> y
[1] 1 3 5 7 9
> s<-numeric(length(y))
> s
[1] 0 0 0 0 0
> s[s<0] <- y[y<0]
> s[s>=0] <- y[y>=0] +1
> s
[1] 2 4 6 8 10
如果x是一个有缺失值的向量、则在对s赋值的时候会报错
> s<-numeric(length(x))
> s
[1] 0 0 0 0 0
> s[s<0] <- x[x<0]
> s[s>=0] <- x[x>=0] +1
Warning message:In s[s >= 0] <- x[x >= 0] + 1 :
number of items to replace is not a multiple of replacement length
向量1-5