目录
一、R软件简介
1.简介
(1)主页
(2)安装
(3)程序包
(4)Rstutio
非常实用的R语言的IDE,是一个免费的软件
2.基本语句
(1)创建向量(一个随机向量、一维数组)
- 在R语言中可用c()来创建一个向量
- 字符串向量
- length()返回向量长度,mode返回向量的数据类型
> x1=c(1,2,3,4,5)
> x1
[1] 1 2 3 4 5
> x1=1:5
> x1
[1] 1 2 3 4 5
> x2=c(2,4,6,8,10)
> x2
[1] 2 4 6 8 10
> x2=seq(2,10,2)
> x2
[1] 2 4 6 8 10
> x3=c('1','M','F')
> x3
[1] "1" "M" "F"
> length(x1)
[1] 5
> mode(x1)
[1] "numeric"
> mode(x3)
[1] "character"
(2)创建矩阵
- 合并命令:rbind表示按行合并,cbind按列合并
:A,B列数相同
:C,D行数相同
> rbind(x1,x2)
[,1] [,2] [,3] [,4] [,5]
x1 1 2 3 4 5
x2 2 4 6 8 10
> cbind(x1,x2)
x1 x2
[1,] 1 2
[2,] 2 4
[3,] 3 6
[4,] 4 8
[5,] 5 10
- 生成矩阵:matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
data为必要的矩阵元素,nrow为行数,ncol为列数,byrow控制排列元素时是否按行进行,dimnames给定行和列的名称
>matrix(c(x1,x2),2,5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 4 8
[2,] 2 4 2 6 10
>matrix(c(x1,x2),2,5,byrow=1,dimnames=list(c('Alice','Lily'),c('R','W','L','M','D')))
R W L M D
Alice 1 2 3 4 5
Lily 2 4 6 8 10
>matrix(c(x1,x2),2,5,byrow=1,dimnames=list(c('Alice','Lily')))
[,1] [,2] [,3] [,4] [,5]
Alice 1 2 3 4 5
Lily 2 4 6 8 10
>matrix(c(x1,x2),2,5,byrow=1,dimnames=list(NULL,c('R','W','L','M','D')))
R W L M D
[1,] 1 2 3 4 5
[2,] 2 4 6 8 10
(3)矩阵运算
> A=B=matrix(1:12,3,4)
> A
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> A+B
[,1] [,2] [,3] [,4]
[1,] 2 8 14 20
[2,] 4 10 16 22
[3,] 6 12 18 24
> A-B
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 0 0 0 0
[3,] 0 0 0 0
> C=A%*%t(B)
> C
[,1] [,2] [,3]
[1,] 166 188 210
[2,] 188 214 240
[3,] 210 240 270
> diag(C)
[1] 166 214 270
> diag(1:4)
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 2 0 0
[3,] 0 0 3 0
[4,] 0 0 0 4
> diag(2,5)
[,1] [,2] [,3] [,4] [,5]
[1,] 2 0 0 0 0
[2,] 0 2 0 0 0
[3,] 0 0 2 0 0
[4,] 0 0 0 2 0
[5,] 0 0 0 0 2
> D=matrix(rnorm(9),3)
> D
[,1] [,2] [,3]
[1,] 0.2088882 -1.391412 0.2242556
[2,] 0.6364397 1.173335 1.4146866
[3,] 0.0867549 -1.027336 0.5440338
> det(D)
[1] 0.5784754
> solve(D)
[,1] [,2] [,3]
[1,] 3.6158714 0.9103055 -3.8576210
[2,] -0.3863841 0.1628193 -0.2641188
[3,] -1.3062441 0.1623001 1.9545271
> eigen(D)
eigen() decomposition
$values
[1] 0.8660794+1.493393i 0.8660794-1.493393i 0.1940987+0.000000i
$vectors
[,1] [,2] [,3]
[1,] -0.1760740+0.5557842i -