R语言基本数据类型

基本的数据类型和操作

向量

向量的生成方法

#-------------------- 生成向量 ----------------------------
v1=c(0,2,4,6,8)                 #创建向量
v2=c(1,3,5,7,9)
v3=1:10                         #创建1到10公差为1的向量

v4=1:10-1                       #创建0:9公差为1的向量
v5=1:10*2+1                     #y=2x+1,x=1~10
v6=1:10**2                      #y=x^2,x=1~10

v7=seq(5,20)
v8=seq(5,94,by=2)               #产生5到93公差为2的等差数列
v9=seq(5,95,length=10)          #产生10个5到95的等差数列

a=c(2,3,4,5,6,3,2,2,5,8,9)
which.max(a)                    #11,向量中最大元素所在的位置
which.min(a)                    #1,向量中最小元素所在的位置
a[which.max(a)]                 #9,向量中最大元素所在的位置的值            
a[which.min(a)]                 #2,向量中最小元素所在的位置的值
which(a==2)                     #1 7 8向量中值为2的元素所在的位置的值
which(a>5)                      #5 10 11向量中值大于5的元素所在的位置
a[which(a>5)]                   #1 7 8向量中值大于5的元素所在的位置的值

矩阵运算

#--------------------- 向量运算 --------------------------------
v=c(0,10,4,6,8) 
length(v)                       #5,获得向量的长度
mode(v)                         #numeric,获得向量的类型
rev(v)                          #  8  6  4 10  0                       
sort(v)                         #正向排序
rev(sort(v))                    #反向排序

矩阵

生成矩阵
#-------------------- 生成矩阵 ----------------------------
m1=rbind(v1,v2)                 #把向量组合成行矩阵
m2=cbind(v1,v2)                 #把向量组合成列矩阵

m3=c(1:12)
matrix(m3,nrow = 3,ncol = 4)
"
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
"
matrix(m3,nrow = 4,ncol = 3)
"
     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12
"
matrix(m3,nrow = 4,ncol = 3,byrow = T)
"
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
[4,]   10   11   12
"

矩阵运算
#-------------------- 矩阵运算 ----------------------------------
m1=m2=matrix(1:12,nrow = 3,ncol = 4)
t(m1)                                   #转秩
m1+m2                                   #加法
m1-m2                                   #减法
m3=matrix(1:12,nrow = 3,ncol = 4)
m4=matrix(1:12,nrow = 4,ncol = 3)
m3%*%m4                                 #乘法
m5=matrix(1:16,nrow = 4,ncol = 4)

#如果v是向量,diag(v)返回一个由v的元素为对角元素的对角矩阵。
#如果v为矩阵,diag(v)返回一个由v主对角元素组成的向量。
#如果v只是一个数值,那么diag(v)是一个vXv的单位矩阵。

diag(m5)                                 #提取对角元素1  6 11 16
diag(diag(m5))
"
[,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    6    0    0
[3,]    0    0   11    0
[4,]    0    0    0   16
"
diag(4)
"
[,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    1    0    0
[3,]    0    0    1    0
[4,]    0    0    0    1
"
diag(4)+1
"
     [,1] [,2] [,3] [,4]
[1,]    2    1    1    1
[2,]    1    2    1    1
[3,]    1    1    2    1
[4,]    1    1    1    2
"
m6=diag(4)
solve(m6)                                 #求逆矩阵
"
     [,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    1    0    0
[3,]    0    0    1    0
[4,]    0    0    0    1
"


x=c(1:100)                      #创建1到100的公差为1的向量
print(x[5])                     #获取第5个元素值
print(x[-5])                    #获取除了第5个元素值
mean=mean(x)                    #计算平均值
sumx=sum(x)                     #求和
maxx=max(x)                     #最大值
minx=min(x)                     #最大值
varx=var(x)                     #样本方差
prodx=prod(x)                   #计算向量元素乘积
sdx=sd(x)                       #计算标准差

数据框

#----------------------- 数据框 --------------------------------
d1=c(12,13,14,15,16,17,18,19,20,21)
d2=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
d=data.frame(d1,d2)             #d1和d2的长度必须相同
print(d)

猜你喜欢

转载自blog.csdn.net/iee2285/article/details/79671278