首页 > 开发 > 综合 > 正文

《R语言实战》读书笔记(二)-- 创建数据集

2024-07-21 02:53:15
字体:
来源:转载
供稿:网友

按照个人要求的格式来创建含有研究信息的数据集,这是任何数据分析的第一步。在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中。

以上就是数据集我用到的地方。具体做实验可能还会出现问题,到时再总结。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表