按照个人要求的格式来创建含有研究信息的数据集,这是任何数据分析的第一步。在R中,这个任务包括以下两步:
选择一种数据结构来存储数据;将数据输入或导入到这个数据结构中。数据集通常是hi有数据构成的一个矩形数组,行表示观测,列表示变量。 不同的行业对于数据集的行和列的叫法不同: - 统计学家称他们为观测和变量
- 数据库分析师称其为记录和字段
- 数据挖掘和机器学习研究者叫它们示例和属性。
R中有许多用于存储数据的结构,包括标量、向量、数组、数据框和列表 R可以处理的数据类型包括数值型、字符型、逻辑型、复数型和原生型。
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。这里仅介绍我用到的知识:
执行组合功能的函数c( )可以用来创建向量
a <- c(1,2,3,4,5)b <- c("1","2","3","4","5")Note:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型),同一向量中无法混杂不同模式的数据 访问元素: 通过方括号中给定元素所处位置的数值,可以访问向量中的元素。如a[c(2,4)],用于访问a向量中的第二个和第四个元素
矩阵是一个二维数组,通过函数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,通过array()创建
myarray <- array(vector, dimensions, dimnames)vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。
数据框将是在R中最常处理的数据结构。当数据有多重模式,无法将此数据集放入一个矩阵,这时候使用数据框是最佳选择,可通过data.frame( )创建
mydata <- data.frame(col1,col2,col3,...)其中的col1,col2,…可以为任何类型,每一列的名称可以由函数names指定。每一列数据的模式必须唯一,不过却可以将多个模式的不同列放在一起组成数据框,如下:
选择数据框中的元素:
可以使用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看参数的含义和用法。
读取一个Excel文件的最好方式,就是在Excel中将其导出为一个逗号分隔文件(csv),并使用 3.1节中描述的方式将其导入R中。
以上就是数据集我用到的地方。具体做实验可能还会出现问题,到时再总结。
新闻热点
疑难解答