《R语言实战》读书笔记-- 创建数据集
Posted 季诗筱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《R语言实战》读书笔记-- 创建数据集相关的知识,希望对你有一定的参考价值。
按照个人要求的格式来创建含有研究信息的数据集,这是任何数据分析的第一步。在R中,这个任务包括以下两步:
- 选择一种数据结构来存储数据;
- 将数据输入或导入到这个数据结构中。
1、数据集的概念
数据集通常是hi有数据构成的一个矩形数组,行表示观测,列表示变量。
不同的行业对于数据集的行和列的叫法不同:
- 统计学家称他们为观测和变量
- 数据库分析师称其为记录和字段
- 数据挖掘和机器学习研究者叫它们示例和属性。
R中有许多用于存储数据的结构,包括标量、向量、数组、数据框和列表
R可以处理的数据类型包括数值型、字符型、逻辑型、复数型和原生型。
2 、 数据结构
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。这里仅介绍我用到的知识:
2.1 向量
执行组合功能的函数c( )可以用来创建向量
a <- c(1,2,3,4,5)
b <- c("1","2","3","4","5")
Note:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型),同一向量中无法混杂不同模式的数据
访问元素:
通过方括号中给定元素所处位置的数值,可以访问向量中的元素。如a[c(2,4)],用于访问a向量中的第二个和第四个元素
2.2 矩阵
矩阵是一个二维数组,通过函数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标明矩阵应该按照行填充,默认情况下按照列填充。
访问元素:
可以使用下标和方括号来选择矩阵中的行、列或元素
2.3 数组
数组与矩阵类似,但是维度可以大于2,通过array()创建
myarray <- array(vector, dimensions, dimnames)
vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。
2.4 数据框
数据框将是在R中最常处理的数据结构。当数据有多重模式,无法将此数据集放入一个矩阵,这时候使用数据框是最佳选择,可通过data.frame( )创建
mydata <- data.frame(col1,col2,col3,...)
其中的col1,col2,…可以为任何类型,每一列的名称可以由函数names指定。每一列数据的模式必须唯一,不过却可以将多个模式的不同列放在一起组成数据框,如下:
选择数据框中的元素:
3、 数据输入
3.1 从带分隔符的文本文件导入数据
可以使用read.table( )从带分隔符的文本文件中导入数据。
mydataframe <- read.table(file,options)
其中,file是一个带分隔符的ASCII文件,options是控制如何处理数据的选项。可以通过?read.table命令查阅数据输入函数的说明
file可以是:
- 绝对路径或者相对路径,R语言中\\是转义字符,所以路径分隔符必须写成 \\
使用file.choose( ),弹出对话框,选择文件位置。强烈推荐这种方法,免去了记忆和书写文件路径的麻烦。
其他参数:
Note:
这里要注意参数 row.names 。比如我出现的错误:
错误一:路径问题
错误二:row.names问题
使用书上的例子:
我出现的错误:
其实我的错误很奇葩,是文件第一个字符乱码。因为我把row.names去掉之后,数据是可以输入的。
但是查资料的时候,发现,是有很多人在这上面出错误,不了解row.names是干嘛的。
row.names这个参数是一个向量,它的长度同数据集的行数是一样的。它用来作为行名。它可以是输入数据集的某一列,也可以是一个向量。具体的可以通过?read.table看参数的含义和用法。
3.2导入Excel数据
读取一个Excel文件的最好方式,就是在Excel中将其导出为一个逗号分隔文件(csv),并使用 3.1节中描述的方式将其导入R中。
以上就是数据集我用到的地方。具体做实验可能还会出现问题,到时再总结。
以上是关于《R语言实战》读书笔记-- 创建数据集的主要内容,如果未能解决你的问题,请参考以下文章