R语言实战(第2版):第二章 创建数据集
时间:2019年11月29日
2.1 数据集的概念
数据集通常是有数据构成的一个矩阵数组,行表示观测,列表示变量。表2-1提供了一个假想的病例数据集。
不同行业对数据集的行和列叫法不同。统计学家称他们为观测(observation)和变量(variable),数据库分析师则称其为记录(record)和字段(field),数据挖掘是和机器学习学科的研究者则把他们叫做示例(example)和属性(attribute)。在本书中通篇使用术语观测和变量。
2、数据结构
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。图2-1给出了这些数据结构的一个示意图。
3、 向量
向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可用来创建向量。
a <- c(1, 2, 5, 3, 6, -2, 4)
b <- c("one","two","three")
c <- c(TRUE,TRUE,FALSE,TRUE,FALSE)
a是数值型向量,b是字符型向量,而c是逻辑型向量.
通过在方括号
中给定元素所处位置的数值,我们可以访问向量中的元素。例如,a[c(2, 4)]用于访问向量a中的第二个和第四个元素。
> a <- c("k", "j", "h", "a", "c", "m")
> a[3]
[1] "h"
> a[c(1, 3, 5)]
[1] "k" "h" "c"
> a[2:6]
[1] "j" "h" "a" "c" "m"
4、矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数matrix()
创建矩阵。
myymatrix <- matrix(vector, nrow=number_of_rows, ncol=number_of_columns,
byrow=logical_value, dimnames=list(
char_vector_rownames, char_vector_colnames))
其中vector
包含了矩阵的元素,nrow
和ncol
用以指定行和列的维数,dimnames
包含了可选的、以字符型向量表示的行名和列名。
4.1 创建矩阵
创建5x4的矩阵
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
按行填充2x2的矩阵
cells <- c(1,26,24,68)
rnames <- c("R1","R2")
cnames <- c("C1","C2")
mymatrix <- matrix(cells, nrow = 2, ncol = 2, byrow = TRUE,
dimnames = list(rnames,cnames))
mymatrix
C1 C2
R1 1 26
R2 24 68
按列填充的2×2矩阵
mymatrix <- matrix(cells, nrow = 2, ncol = 2, byrow = FALSE, ## TRUE 改为FALSE
dimnames = list(rnames, cnames))
mymatrix
C1 C2
R1 1 24
R2 26 68
我们可以使用下标
和方括号
来选择矩阵中的行
、列
或元素
。X[i,]
指矩阵X中的第i行,X[,j]
指第j列,X[i, j]
指第i行第j 个元素。选择多行或多列时,下标i和j可为数值型向量.
**代码清单2-2 矩阵下标的使用 **
x <- matrix(1:10, nrow = 2)
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
x[2,]
[1] 2 4 6 8 10
x[,2]
[1] 3 4
首先,我们创建了一个内容为数字1到10的2×5矩阵。默认情况下,矩阵按列填充。然后,我们分别选择了第二行和第二列的元素。接着,又选择了第一行第四列的元素。最后选择了位于第一行第四、第五列的元素。
'由于本章节内容较多,将进行拆分'
网友评论