第2章 创建数据集

《R语言实战》笔记系列


本章学习大纲

1.R的数据结构

2.输入数据

3.标注数据

第一部分 R的数据结构


第2章 创建数据集_第1张图片

1.向量

向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可以创建向量。

单个向量中的数值必须拥有相同的类型或模式(数值型、字符型、逻辑型)

通过在方括号中给定元素所处未指定的数值,即可访问该向量的元素。

ps:标量是指只含有一个元素的向量。例如:f<-3、a<-"US"


第2章 创建数据集_第2张图片
向量数据集的创建 a为数值型,b为字符型,c为逻辑型

2.矩阵

矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型、逻辑型)。可通过函数matrix()创建矩阵。

一般格式:

myymatrix<-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dianames=list(char_vector_rownames,char_vector_colnames))

vector为包含在该矩阵的元素,nrow和ncol指定行和列的维数,dimnames是指以字符型向量表示行名和列名。byrow表明矩阵是按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认按照列填充。

同理,用方括号查询元素,用向量函数选择多行或多列的元素例y[1,c(1,2)]或者x[,2]


错误的矩阵创建 没有创建行和列


第2章 创建数据集_第3张图片
正确的矩阵创建

3.数组

数组(array)与矩阵类似,但是维度可以大于2。

数组通过array()来创建。

一般形式:myarray<-array(vector,dimensions,dimnames)

vector代表数组中的数据,dimensions是一个数值型向量,给出各个维度下标的最大值。(简单的理解就是设定一个矩形的长,宽,高)

通过方括号来选取元素,如z[1,2,2]为4


第2章 创建数据集_第4张图片
数组的创建

4.数据框

数据框的不同列包含不同的模式数据如(数值型、字符型)

数据框通过函数data.frame()来创建


第2章 创建数据集_第5张图片
数据框的创建和元素选取

符号$是被用来选取一个给定数据框中的某个特定变量。可以用来生成几个不同变量的列联表。


符号$的应用

函数attach()可以将数据框添加R的搜索途径中。R在遇到 一个变量名后,会检查搜索路径中的数据框。函数detach()将数据框从搜索路径中移除。但detach()并不会对数据框中的数据做任何处理。

attach()就是指定搜索区域,可以让R缩小搜索范围。

第2章 创建数据集_第6张图片
不用attach()和使用attach()的区别

如果在数据框mtcars被绑定(attach)之前,已经有一个名为mpg的对象,这种情下,原始对象将获得优先权,会报错,如下图所示

第2章 创建数据集_第7张图片
原始对象与attach()中的对象冲突

函数with()与attach()功能相近,但wih()局限性在于赋值只在函数的括号内生效。

如果需要创建在with()结构以外存在的对象,使用特殊赋值符<<-替代标准赋值符(<-),就可以将对象保存在with()之外的全局环境。如下图所示


第2章 创建数据集_第8张图片
<<-与<-在函数with()应用的区别

实例标识符(case identifier)用于区分数据集不同的个体,如上例的病人编号(patientID)。在R中可以通过数据框操作函数中的rowname选项指定。


第2章 创建数据集_第9张图片
实例标识符的区别

5.因子

在R中名义型变量和有序型变量称为因子(factor)

名义型变量:没有顺序之分的变量。如:糖尿病类型Type1、Type2,直接用factor()赋值即可。

有序型变量就是有顺序关系的变量。如:病情分为poor,improved,excellent,在函数factor()中需要添加参数ordered=TRUE.由于电脑默认的顺序不一定是对的,所以经常用参数levels来设定顺序。(往往从低到高排序)


有序型变量的设定

数值型变量可以用levels和labels参数来编码成因子。   

数值型变量的设定

6.列表

列表(list)是R的数据类型中最复杂的一种,一般来说,列表是各种类型对象的有序集合。

第2章 创建数据集_第10张图片
列表的设定

可以通过双重方括号来代表某个成分的数字或名称来访问列表中的元素。也可以用$和""。


第2章 创建数据集_第11张图片
列表元素的选取

第二部分 R的数据输入


第2章 创建数据集_第12张图片
R的数据来源

1、使用键盘输入数据

函数edit()会自动调用一个允许手动输入数据的文本编辑器。

先创建一个空的数据框(矩阵)后用edit()编辑数据

类似于age=numeric(0)的赋值语句将创建一个指定模式但不含有实际数据的变量。注意,编辑的结果需要赋值回编辑的本身。函数edit()是在对象的一个副本上进行操作的,如果不将其赋值到一个目标,所有的修改都会丢失。

第2章 创建数据集_第13张图片
edit()函数弹出的文本编辑器

2.从带分隔符的文本文件导入数据

可以使用read.table()从带分隔符的文本文件中导入数据。一般格式是:mydataframe<-read.table(file,options)

其中,files是一个带分隔符的ASC2文本文件,options是控制如何处理数据的选项。详细的选项请用help()查看。

3.导入excel数据

读取EXCEL数据的最好方式就是将EXCEL导出为一个逗号分隔文件(csv),再用第二种方法导入R文件中。或者用xlsx()包中的read.xlsx()将数据表中的一个工作表导入数据框中。一般格式是:read.xlsx(file,n)。其中file是Excel文件的所在路径,n表示要导入的工作表序号。如果是大型的工作簿可以用read.xlsx2()函数。

导入excel数据的示例

4.从网页抓取数据

一个网页上的文字可以使用readlines()来下载到一个R的字符向量中,然后用grep()和gsub()一类的函数处理。

5.导入spss数据

可以通过foreign包中的函数read.spss()导入R中,也可以使用Hmisc包中的spss.get()函数。

第三部分 标注数据

函数factor()可以为类别型变量创建值标签,参数levels代表变量的实际值,labels表示包含了理想值标签的字符型向量。

标注数据的示例

你可能感兴趣的:(第2章 创建数据集)