R语言——数据读取之详解
福尔·摩斯曾说过:“数据,数据,没有数据的推理是罪恶!”
不过比起有意思的统计分析,数据的导入与导出显得十分的无趣,但是不得不说统计分析的数据导入与导出是个让人沮丧的任务,而且耗时巨大。
今天分享的是R数据的储存数据格式,及其R中数据的输出与一些特定格式的数据读入。
一、数据集结构
数据集是由数据构成的一个矩形数组,行表示观测,列表示变量。
R拥有的数据结构有:
类型 | 特点 |
---|---|
标量 | 只含一个元素的向量 |
向量 | 用于储存数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可以用来创建向量 |
矩阵 | 二维数组,只是每个元素都有相同的模式(数值型、字符型或逻辑型)。可以通过matrix()创建矩阵 |
数组 | 矩阵类似,但维度可以大于2,可以通过array创建一个数组 |
数据框 | 比矩阵更为一般。数据框是你会在R中最常见的数据结构。、数据框可以通过命令data.frame()创建 |
因子 | 类别(名义型)变量和有序类别(有序型)变量 |
列表 | R数据类型中最为复杂的一种。列表就是一些对象的有序结合,允许你整合若干对象到单个对象名下。可以使用list()创建列表 |
在R中,对象(object)是指可以赋值给变量的任何事物;数据框(data frame)是R中用于储存数据的一种结构:列表示标量,行表示观测;因子(factor)是名义型标量或有序变量。
(一)向量和标量
向量是用于储存数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可以用来创建向量:
a <- c(1, 2, 5, 3, 6, -2, 4)
b <- c("one", "two", "three")
c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)
标量是只含一个元素的向量,例如
f <- 3
g <- "US"
h <- TRUE
过在方括号中给定元素所处的位置的数值,可以访问向量中的元素,例如:
a <- c("k", "j", "h", "a", "c", "m")
a[3]
最后一个语句中使用的冒号用于生成一个数值序列,例如a <- c(2:6)等价于a <- c(2, 3, 4, 5, 6)
(二)矩阵
矩阵是一个二维数组,只是每个元素都有相同的模式(数值型、字符型或逻辑型)。可以通过matrix()创建矩阵,一般使用格式为:
mymatrix <- 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包含了可选的、以字符型向量表示的行名和列名。选项byrow则表明矩阵以行填充还是以列填充,默认情况下按行填充(TRUE)。
y <- matrix(1:20, nrow = 5)#创建矩阵
y
cells <- c(1,26,24,28)
rnames <- c("R1", "R2")
cnames <- c("C1", "C2")
mymatrix <- matrix(cells, nrow = 2, dimnames = list(rnames, cnames))#创建矩阵
mymatrix
我们可以用下标和方括号来选择矩阵中的行和列。X[i,]指定X中的第i行,X[,j]指定X中的第j列。X[i,j]指定第i行第j列个元素。选择多个行和列时,下标i和j可以为数值型向量。
x