闲来无事,想起一年前好友推荐的《R语言实战》,决定好好再过一下重点章节。实践很重要,可以帮助一个人在短期内快速成长,但这种以项目为导向的操作模式到了一定程度,会有知识瓶颈,此时才发现知识体系建立的重要性。故此次重新翻阅此书的目的是:1.巩固R的基础概念 2.熟悉数据流操作的流程,重点放在数据集、字符串以及可视化方面,统计暂不做要求。
1 创建含有研究信息的数据集
- 选择某种数据结构存储数据
- 将数据输入或导入到以上数据结构中
- 对数据集进行标注
2 不同行业对于数据集的行与列叫法不同
- 统计学家:observation and variable
- 数据库分析师:record and field
- 数据挖掘研究者:example and attribute
3 数据结构
- 标量:只含一个元素的向量,用于保存常量;
- 向量:用于存储数值型、字符型或逻辑型数据的一维数组。
c()
可创建向量; - 矩阵:为二维数组,每个元素具有相同模式,
matrix()
可创建矩阵; - 数组:与矩阵类似,维度可大于2,
array()
可创建数组,也只能拥有一种模式; - 数据框(data frame):可包含不同模式的数据,最常使用,通过
data.frame()
可创建数据框。每一列数据的模式必须唯一。选取数据框中元素的方式有多种,如下标、指定列名。可用attach()
,detach()
,with()
简化代码。实例标识码( Case identifier )通过row.names
指定。详见example 1
– 因子(Factor):名义变量和有序变量在R中称为因子。status <- factor(status, ordered=TRUE)
- 列表:最为复杂,可为各种不同数据类型的有序组合,通过
list()
创建列表。使用[["X"]]
可访问列表中的元素。
#example 1
jay<-data.frame(col1,col2,col3)
summary(jay$col1)
plot(jay$col1,jay$col2)
# the same as
attach(jay)
summary(col1)
plot(col1,col2)
detach(jay)
4 数据的输入
- 键盘输入:
edit()
- 从带分隔符的文本文件导入数据:
read.table(file,header=TRUE,sep=",",row.names="PatientID")
,默认情况下,字符型变量将转换为因子。 - 导入EXCEL数据:可将其导出为csv,然后通过以上第二种方式将其导入R中,最为理想。
- 导入SPSS数据:利用
Hmisc
包的spss.get
函数
5 处理数据对象的实用函数
length(object) 显示对象中元素/成分的数量
dim(object) 显示某个对象的维度
str(object) 显示某个对象的结构
class(object) 显示某个对象的类或类型
mode(object) 显示某个对象的模式
names(object) 显示某对象中各成分的名称
c(object, object,…) 将对象合并入一个向量
cbind(object, object, …) 按列合并对象
rbind(object, object, …) 按行合并对象
Object 输出某个对象
head(object) 列出某个对象的开始部分
tail(object) 列出某个对象的最后部分
ls() 显示当前的对象列表
rm(object, object, …) 删除一个或更多个对象
newobject <- edit(object) 编辑对象并另存为newobject
fix(object) 直接编辑对象