Loading

R学习-7.Matrices and Data Frames

Matrices and Data Frames

Matrices and Data Frames 用于储存表格类型的数据。其中Matrices存储的数据只能包含一种类型,而Data Frames可以包含多种数据类型。

一个vector可以转换成matrix,通过函数dim()设置其维度。

> v <- 1: 20
> dim(v) <- c(4, 5)
> v
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> dim(v)
[1] 4 5
> class(v) # 通过函数确认v已经成为了matrix
[1] "matrix"

通过函数matrix()能更直接的生成一个matrix,通过?matrix可以获取到更多关于函数的相关信息。

比如生成一个4行5列的matrix

> my_matrix <- matrix(1:20, nrow = 4, ncol = 5)
> my_matrix
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> identical(v, my_matrix) # 函数identical告诉我们它们是一样的
[1] TRUE

若Matrix数据中存在字符串,将导致所有数据都变成了字符串了。函数cbind()表示'combine columns',以列的方向进行合并。

> patients <- c("Bill", "Gina", "Kelly", "Sean")
> cbind(patients, my_matrix)
     patients                       
[1,] "Bill"   "1" "5" "9"  "13" "17"
[2,] "Gina"   "2" "6" "10" "14" "18"
[3,] "Kelly"  "3" "7" "11" "15" "19"
[4,] "Sean"   "4" "8" "12" "16" "20"

matrix只支持一种数据类型,所以为保持一致,数字都变成了以双引号引起的字符串了。但这显然不是想要的。data frame 支持多种数据类型。可以用它来储存数据。

> my_data <- data.frame(patients, my_matrix)
> my_data
  patients X1 X2 X3 X4 X5
1     Bill  1  5  9 13 17
2     Gina  2  6 10 14 18
3    Kelly  3  7 11 15 19
4     Sean  4  8 12 16 20
> class(my_data)
[1] "data.frame"

通过函数colnames()可以给data frame添加列名

cnames <- c("patient", "age", "weight", "bp", "rating","test")
> colnames(my_data) <- cnames
> my_data
  patient age weight bp rating test
1    Bill   1      5  9     13   17
2    Gina   2      6 10     14   18
3   Kelly   3      7 11     15   19
4    Sean   4      8 12     16   20

data frame 的索引可以通过行名和列名,也可以通过数字索引值。

> my_data["p2", "age"]
[1] 2
> my_data[2, 2]
[1] 2

上一节:R学习-6.Subsetting Vectors

下一节:R学习-8.Logic

posted @ 2020-06-21 22:16  何物昂  阅读(193)  评论(0编辑  收藏  举报