R是一种用于数据处理和统计分析的脚本语言。
(2)如何用R语言创建向量呢?
字符型: >(输入) a <- c('h','e','l','l','o')
> a
得到结果:[1] "h" "e" "l" "l" "o"
数值型: > b <-c(1,2,3)
> b
得到结果:[1] 1 2 3
逻辑型:> c <- c(TRUE,FALSE,TRUE)
> c
得到结果:[1] TRUE FALSE TRUE
(2)如何用R语言创建矩阵呢?
> (输入) y <- matrix(1:20,nrow=5,ncol=4)
> y
得到结果:
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
可通过>(输入) matrix查看函数
(3)通过此方式将矩阵赋值
>y<-matrix(c(1,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4),nrow=5,ncol=4)
> y
得到结果:
[,1] [,2] [,3] [,4]
[1,] 1 2 4 4
[2,] 2 2 4 4
[3,] 2 2 4 4
[4,] 2 2 4 4
[5,] 2 2 4 4
默认矩阵按列输出数据,可以用如下方式更改按行输出
> y <-matrix(1:20,ncol=5,nrow=4,byrow = TRUE)
> y
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20
(4)如何加矩阵维度标签?
行命名:> rownames(y) <- LETTERS[1:4]
> y
[,1] [,2] [,3] [,4] [,5]
A 1 2 3 4 5
B 6 7 8 9 10
C 11 12 13 14 15
D 16 17 18 19 20
列命名:> colnames(y) <- c("x","Y","doc","Bear","q")
> y
x Y doc Bear q
A 1 2 3 4 5
B 6 7 8 9 10
C 11 12 13 14 15
D 16 17 18 19 20
创建三维 (2×3×4)数值型数组:
> z <- array(1:24, c(2,3,4))
> z
得到如下结果:
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
, , 4
[,1] [,2] [,3]
[1,] 19 21 23
[2,] 20 22 24
提取数据> z[2,1:3,1]
得到结果:[1] 2 4 6
(2)为列命名得到如下结果:
> colnames(z) <- c("x","Y","doc")
> z
, , 1
x Y doc
[1,] 1 3 5
[2,] 2 4 6
, , 2
x Y doc
[1,] 7 9 11
[2,] 8 10 12
, , 3
x Y doc
[1,] 13 15 17
[2,] 14 16 18
, , 4
x Y doc
[1,] 19 21 23
[2,] 20 22 24
(3)为列命名得到如下结果:
> rownames(z) <- LETTERS[1:2]
> z
, , 1
x Y doc
A 1 3 5
B 2 4 6
, , 2
x Y doc
A 7 9 11
B 8 10 12
, , 3
x Y doc
A 13 15 17
B 14 16 18
, , 4
x Y doc
A 19 21 23
(1)数据框可以不同的列包含不同模式(数值型、字符型等)的数据,是在R中常处理的数据结构。
(2)如何用R语言创建数组呢?
> patientID <- c(1,2,3)
> age <-c(23,45,12)
> status <-c("good","good","poor")
> patientdata <- data.frame(patientID,age,status)
> patientdata
得到结果:
patientID age status
1 1 23 good
2 2 45 good
3 3 12 poor
> patientdata$age
[1] 23 45 12
> patientdata$status
[1] good good poor
Levels: good poor
> table(patientdata$age,patientdata$status)
good poor
12 0 1
23 1 0
45 1 0
> x <- factor(c(1, 2, NA), exclude = NULL)
> x
[1] 1 2 <NA>
Levels: 1 2 <NA>
> a <- c(1,2,3)
> is.array(a)
[1] FALSE
> is.factor(a)
[1] FALSE
> is.vector(a)
[1] TRUE
> class(a)
[1] "numeric"
> typeof(a)
[1] "double"
> length(a)
[1] 3
> str(a)
num [1:3] 1 2 3
> summary(a)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.0 1.5 2.0 2.0 2.5 3.0
今天简单练习了R语言的各种数据集包括向量、矩阵、数组和数据框创建及使用。
1.向量:
(1)向量是用于存储数值型、字符型或逻辑型数据的一维数组(2)如何用R语言创建向量呢?
字符型: >(输入) a <- c('h','e','l','l','o')
> a
得到结果:[1] "h" "e" "l" "l" "o"
数值型: > b <-c(1,2,3)
> b
得到结果:[1] 1 2 3
逻辑型:> c <- c(TRUE,FALSE,TRUE)
> c
得到结果:[1] TRUE FALSE TRUE
2.矩阵
(1)矩阵是二维数组,每个元素都模式相同(数值型、字符型或逻辑型)可通过函数matrix创建矩阵(2)如何用R语言创建矩阵呢?
> (输入) y <- matrix(1:20,nrow=5,ncol=4)
> y
得到结果:
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
可通过>(输入) matrix查看函数
(3)通过此方式将矩阵赋值
>y<-matrix(c(1,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4),nrow=5,ncol=4)
> y
得到结果:
[,1] [,2] [,3] [,4]
[1,] 1 2 4 4
[2,] 2 2 4 4
[3,] 2 2 4 4
[4,] 2 2 4 4
[5,] 2 2 4 4
默认矩阵按列输出数据,可以用如下方式更改按行输出
> y <-matrix(1:20,ncol=5,nrow=4,byrow = TRUE)
> y
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20
(4)如何加矩阵维度标签?
行命名:> rownames(y) <- LETTERS[1:4]
> y
[,1] [,2] [,3] [,4] [,5]
A 1 2 3 4 5
B 6 7 8 9 10
C 11 12 13 14 15
D 16 17 18 19 20
列命名:> colnames(y) <- c("x","Y","doc","Bear","q")
> y
x Y doc Bear q
A 1 2 3 4 5
B 6 7 8 9 10
C 11 12 13 14 15
D 16 17 18 19 20
3.数组
(1)如何用R语言创建数组呢?创建三维 (2×3×4)数值型数组:
> z <- array(1:24, c(2,3,4))
> z
得到如下结果:
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
, , 4
[,1] [,2] [,3]
[1,] 19 21 23
[2,] 20 22 24
提取数据> z[2,1:3,1]
得到结果:[1] 2 4 6
(2)为列命名得到如下结果:
> colnames(z) <- c("x","Y","doc")
> z
, , 1
x Y doc
[1,] 1 3 5
[2,] 2 4 6
, , 2
x Y doc
[1,] 7 9 11
[2,] 8 10 12
, , 3
x Y doc
[1,] 13 15 17
[2,] 14 16 18
, , 4
x Y doc
[1,] 19 21 23
[2,] 20 22 24
(3)为列命名得到如下结果:
> rownames(z) <- LETTERS[1:2]
> z
, , 1
x Y doc
A 1 3 5
B 2 4 6
, , 2
x Y doc
A 7 9 11
B 8 10 12
, , 3
x Y doc
A 13 15 17
B 14 16 18
, , 4
x Y doc
A 19 21 23
B 20 22 24
(1)数据框可以不同的列包含不同模式(数值型、字符型等)的数据,是在R中常处理的数据结构。
(2)如何用R语言创建数组呢?
> patientID <- c(1,2,3)
> age <-c(23,45,12)
> status <-c("good","good","poor")
> patientdata <- data.frame(patientID,age,status)
> patientdata
得到结果:
patientID age status
1 1 23 good
2 2 45 good
3 3 12 poor
进行一系列数据操作,如下:
> patientdata[,1]
[1] 1 2 3> patientdata$age
[1] 23 45 12
> patientdata$status
[1] good good poor
Levels: good poor
> table(patientdata$age,patientdata$status)
good poor
12 0 1
23 1 0
45 1 0
> x <- factor(c(1, 2, NA), exclude = NULL)
> x
[1] 1 2 <NA>
Levels: 1 2 <NA>
> a <- c(1,2,3)
> is.array(a)
[1] FALSE
> is.factor(a)
[1] FALSE
> is.vector(a)
[1] TRUE
> class(a)
[1] "numeric"
> typeof(a)
[1] "double"
> length(a)
[1] 3
> str(a)
num [1:3] 1 2 3
> summary(a)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.0 1.5 2.0 2.0 2.5 3.0