#---r中向量相关的操作
#----数字型向量
#赋值
x<-c(1,2,3)
assign("x",c(1,2,3))
y<-c(x,2,x)
# > y
# [1] 1 2 3 2 1 2 3
#向量的运算
x<-c(1,2,3);y<-c(2,3,4)
v1<-2*x+x*y+1
# > v1
# [1] 5 11 19
v2<-2*x+x*y+c(1,1,1)
v1==v2
# > v1==v2 两者效果相同,自己体会
# [1] TRUE TRUE TRUE
x^2
# > x^2
# [1] 1 4 9
#函数运算,比如log,sqrt,sin等
x<-c(1,2,3)
sqrt(x)
# > sqrt(x)
# [1] 1.000000 1.414214 1.732051
#与向量相关的其他函数min、max、range、which.min、which.max、sum、prod、length、sort、mean、var
x<-c(3,2,1)
# > min(x)
# [1] 1
# > max(x)
# [1] 3
# > which.max(x)
# [1] 1
# > which.min(x)
# [1] 3
# > sum(x)
# [1] 6
# > prod(x)
# [1] 6
# > length(x)
# [1] 3
# > sort(x)
# [1] 1 2 3
# > mean(x)
# [1] 2
# > var(x)
# [1] 1
#等差数列一般采用a:b的形式
# > 1:15 代表从1到15的数列,每次加1
# [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# > 1:4.5 a为整数,b为实数,表示a到b的整数部分,每次加1
# [1] 1 2 3 4
# > 1.5:5 a为实数,b为整数,表示从a开始累加到b,每次加1
# [1] 1.5 2.5 3.5 4.5
# > 2*(1:5)
# [1] 2 4 6 8 10
# > 2*1:5 向量优先级大于运算符号
# [1] 2 4 6 8 10
# > 1:5-1
# [1] 0 1 2 3 4
#重复函数 rep(x,times=)
x<-c(1,2,3)
s<-rep(x,times=2)
# > s
# [1] 1 2 3 1 2 3
#逻辑向量,在向量赋值处使用逻辑表达式
x<-c(1,2,3,4,5)
l<-x>3
# > l
# [1] FALSE FALSE FALSE TRUE TRUE
#其它的逻辑向量运算还有< <= == !=等
#all和any用于返回向量中的值是否全部大于3的逻辑值,any返回向量x中是否有值大于3
all(x>3)
any(x>3)
#逻辑向量的赋值,可以使用F和T对false和true进行简写
l<-c(TRUE,FALSE,F,T)
#向量中的缺失数据、赋值、检查
z<-c(-1,1:3,NA)
z
# [1] -1 1 2 3 NA
is.na(z)
z[is.na(z)]<-0
# > z
# [1] -1 1 2 3 0
#结合z的下标进行复杂运算
z
# [1] -1 1 2 3 0
#结合z的下标进行复杂运算
(z+1)[!is.na(z)&z>0]
# [1] 2 3 4
#-----字符型向量
#涉及赋值、paste连接
X<-c("My","Job")
paste("My","Job") #表示将两个字符链接,默认使用空格进行分隔开
# [1] "My Job"
paste("X",1:6,sep = "")
# [1] "X1" "X2" "X3" "X4" "X5" "X6"
#可以使用定义下标值的方法来定义分段函数
#比如分段函数 y=1-x x<0 y=1+x x>=0
y[x<0]<-1-x[x<0]
y[x>=0]<-1+x[x>=0]
#下标的正整数运算
v<-10:20
v[c(1,2,3,4)]
c("a","b","c")[rep(c(2,1,3),times=3)]
#下标的负整数运算
v[-(1:5)]
#表示去除代号为哪些的值
#取字符向量的某些下标值
#在定义向量的时候可以加上列名
ages<-c(Li=23,chen=30)
#向量名称可以后加
ages=c(23,40,50)
names(ages)<-c("li","chen","zhang")
ages
# > ages
# li chen zhang
# 23 40 50
R语言中的向量使用合集
最新推荐文章于 2024-03-25 21:31:46 发布