感谢Robert I.Kabacoff 著作本书,同时感谢高涛、肖楠、陈钢编译此书。
最近在学习《R语言实战》,特将学习过程记录下来,供各位朋友参考,虽说是笔记,但是90%是书中内容,另外10%是自己偶尔冒出的一点点想法的记录和一些疑问,希望互相探讨。末尾有本章的代码清单下载地址,与各位交流,还是提倡按照书中内容把代码一个个敲出来。
第四章 基本数据管理
本章内容
操纵日期和缺失值
熟悉数据类型的转换
变量的创建和重编码
数据集的排序,合并与取子集
选入和丢弃变量
4.1 一个示例
代码清单中,最后一行的最后一个参数,stringsAsFactors = FALSE,个人认为含义是:特征向量能否转换为因子,默认TRUE,可以转换。R中解释为:
stringsAsFactors
logical: should character vectors be converted to factors? The ‘factory-fresh’ default is TRUE, but this can be changed by setting options(stringsAsFactors = FALSE)
4.2 创建新变量
在R中,算数运算符除了+、-、*、/,还有
^(或 **):求幂。
x%%y:求余,5%%2的结果为1。
x%/%y:整数除法,5%/%2的结果为2。
代码清单4-2提供了三种将新变量整合到原始的数据框中的方式。相当于在列表中增加新的一列(新的观测)。作者推荐使用第三种方式,我个人也比较喜欢第三种,主要是简便并且不容易误操作。
4.3 变量的重编码
重编码涉及根据一个变量和/或其他变量的现有值创建新值得过程。
运算符 | 描述 |
4.4变量的重命名
- 交互式方法。
使用fix(数据框名)即可调出一个交互式的编辑器,可直接点击变量名进行修改。 编程的方法
下载、载入reshape包,注意使用R 3.3.1版本。然后使用其中的rename()函数即可。编程的方式也分为几种方法:
直接将旧名称换为新名称。
data.frame <- rename(oldname = "newname", oldname = "newname", …)
指定变换的变量数字。
names(data.frame)[2] <- "newname"
以向量的方式批量更换某一部分变量名。
names(data.frame)[2:5] <- c("newname", "newname", …)
4.5 缺失值
is.na()将返回逻辑值TRUE(存在缺失值)和FALSE(不存在缺失值)。
注意:
缺失值被认为是不可比较的,即便是与确实值自身的比较。这一位这无法使用比较运算符来检测缺失值是否存在。例如,逻辑测