《R语言实战》第一二章节学习笔记

本文是《R语言实战》的学习笔记,主要涵盖R语言的基本数据结构如向量、矩阵、数组和数据框的介绍,以及数据的输入方法,包括键盘输入、文本文件导入、Excel、XML、网页抓取等多种方式。文章还探讨了数据集的标注和处理数据对象的实用函数。
摘要由CSDN通过智能技术生成

  感谢Robert I.Kabacoff 著作本书,同时感谢高涛、肖楠、陈钢编译此书。

  最近在学习《R语言实战》,特将学习过程记录下来,供各位朋友参考,虽说是笔记,但是90%是书中内容,另外10%是自己偶尔冒出的一点点想法的记录和一些疑问,希望互相探讨。末尾有本章的代码清单下载地址,与各位交流,还是提倡按照书中内容把代码一个个敲出来。

第一章 R语言介绍

自定义启动环境以自动载入会频繁使用的包 ——P14

问: 如何自定义启动环境?

常见错误类型

  • 注意大小写
  • 注意引号与括号是否漏了;
  • 路径名称使用 “/” 或者 “\”;
  • 是否使用未载入包的函数




第二章 创建数据集

 按照个人要求的格式来创建含有研究信息的数据集是数据分析的第一步。这个任务包括以下两步:

  • 选择一种数据结构来存储数据
  • 将数据输入或导入到这个结构中

      本章的第一部分(2.1~2.2节)叙述了R中用于存储数据的多种结构。

      本章的第二部分(2.3节)涵盖了多种向R中导入数据的可行方法,通常,你只需要其中的一两种方法。

      本章的第三部分(2.4节)将讨论数据集的标注问题,并在2.5节介绍一些处理数据集的使用函数。



2.1 数据集的概念


由数据构成的矩形数组,行表示观测,列表示变量

  不同行业对于数据集的行列叫法不同,统计学家称之为 观测 (observation)和 变量 (variable),
数据库分析师称之为 记录 (record)和 字段 (field),数据挖掘/机器学习学科的研究者则把他们叫
示例(example)和属性(attribute)。



2.2数据结构

  包括标量、向量、矩阵、数组、数据库和列表。

2.2.1 向量

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

例如

a <- c(2,1,5,6,4)

b <- c(“北京”,”上海”,广州”,”深圳”)

c <- c(TRUE,TRUE,FALSE,FALSE)

注意

标量是只含有一个元素的向量,例如f <- 2、g <- “中国”和h <- TRUE。它们用于保存常量。

  访问向量中的指定元素可用方括号表示,如:a[c(2,4)],用于访问a中的第二个和第四个元素,即1和6。

2.2.2 矩阵

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

myymatrix <- 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包含了可选的,以字符型向量表示的行名和列名,选项byrows则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认是按列填充。

  提取矩阵中的元素时用[,],其中逗号前后分辨是,行数和列数。

如:
`x <- matrix(1:10,nrow=2) #创建一个1到10、两行的矩阵。

x #查看矩阵内容。

x[2,] #查看x中,第二行的元素,即2 4 6 8 10。

x[,2] #查看x中,第二列的元素,即3 4。

x[1,4] #查看x中,第一行,第四列的元素,即7。

x[1,c(4,5)] #查看x中,第一行,第四、五列的元素,即7 9。`

2.2.3 数组

  与矩阵类似,但是维度可以大于2。可通过函数array来创建,形式如下:

myarry <- array(vector,dimensions,dimnames)

  其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。

问:

  • 既然维度可以大于2,那么当维度为3、4的时候,是怎样的形式?

  • 下标是什么意思?

2.2.4 数据框

  在R中最常处理的数据结构,不同列可以包含不同模式(数值型、字符型等)的数据,同一列的数据模式必须相同。可通过函数data.frame()来创建,如:

mydata <- data.frame(col1,col2,col3,…)

  其中的列向量col1,col2,col3,…可为任意类型,(如数值型、字符型或逻辑型)每一列的名称可由函数names指定。

  使用$来提取数据狂中的特定元素,但是每次都输入数据框名,有点麻烦,用attach(),detach()和with()函数来简化代码。

1. attach(),detach()和with()函数

  函数attach()可以将数据库添加到R的搜索路径中,函数detach()将数据框从搜索路径中移除,
和with()函数

**当名称相同的对象不止一个时,attach()与detach()组合的方式,局限性就很明显。
当环境中已经有一个此名称的对象时,原始对象取得优先权。**

  使用with()的局限性在于,赋值仅在此函数的括号内生效,如果需要创建with()结构以外存在的对象,使用特殊赋值符<<- 替代标准赋值符(<-),它可以将对象保存到with()以外的全局环境中。

2. 实例标识符

  在R中,可通过数据框操作函数中的rowname选项将对象指定为R中标记各类打印输出和图形中实例名称所用的变量。如:

patientdata <- data.frame(patientID,age,diabetes,status,row.names=patientID)

2.2.5 因子

变量分为名义型、有序型或连续型变量。

  • 名义型变量是没有顺序的类别型变量。如病人患病类型(Type1、Type2)。
  • 有序型变量表示一种顺序,而非数量关系的变量。如病情(很差、较好、痊愈)。
  • 连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量。
类别 顺序关系 数量关系
名义型变量
无序型变量
连续型变量

  其中的名义型变量和有序型变量都是因子,因子很重要,因为它决定了数据的分析方式以及如何进行视觉呈现。

  函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1~k](其中k是名义型变量中唯一值得个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。要表示有序型变量需为函数factor()指定参数ordered()

  这里对向量的编码使用的是字母顺序,可以通过指定levels选项来覆盖默认排序。

四分位数

将n个数值从小到大排列,分别在20%,50%,75%的位置

Q1的位置= (n+1) × 0.25

Q2的位置= (n+1) × 0.5

Q3的位置= (n+1) × 0.75

2.2.6 列表

  是R中最为复杂的一张数据类型,是一些对象(或成分,component)的有序集合。用函数list()来创建。

mylist <- list(obecjt1,obecjt2,…)

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值