研究生期间参加广东省疾控R培训的笔记, 这算是我真正意义上的编程入门课了
R培训笔记整理
总览
本次培训共计3天,包含5部分内容,分别为:
- R语言简介及基本概念、操作
- 使用R绘制统计图(graph & ggplot2)
- 时间序列分析简介以及广义线性模型(GLM)及广义相加模型(GAM)的使用
- 分布滞后非线性模型的使用
- R中的meta分析
R语言简介及基本概念、操作
R特点
- 优:免费、功能多、更新快、过程可视化、作图美观
- 劣:难精、不统一、学习须时间、运行慢(可通过特定包优化)
软件安装
- R以及Rstudio可从官网获取安装包
- package/包 可从官网自行获取后安装,亦可软件内安装
- R内函数需要先加载相应软件包后才可使用, 也仅有加载后才可在帮助中查看对应帮助.
软件界面简介(略)
R常用语法
- 大小写区分
- 语句由函数与赋值构成
- 所有符号须使用半角英文
#
用于注释,#文本####
可索引(script模式下)- 每行句末不需要特殊符号,语句未完成时程序向下行继续执行直到完成
<-
为赋值符号, 如x<-3
,=
可替换之==
为逻辑运算符等于,&
为和,|
为或,>=
大于等于,<=
小于等于- 单双引号大多数情况无差别
- 路径有两种等价的表达方式,
C:\\R\\Data
等同C:/R/Data
; R对中文支持不佳, 尽量使用全英文路径 $
可用于提取对象内变量, 提取后可进行赋值或改写等操作.[]
可用于提取数据框的子集!
为反义符号
工作目录设置 & 数据读写
- 目录:
getwd("路径")/setwd("路径")
- 数据导入:
- Excel(仅支持.csv):
read.csv("路径+文件名, header= , sep=",")
- txt:
read.table("路径+文件名", header= , )
- Spss(.sav):
read.spss("路径+文件名", use.value.labels= )
- SAS(.sav):
read.sas7bdat("路径+文件名")
- R(.rda):
load("路径+文件名")
- 直接读取:
read.table(textConnection("内容"), header=, sep=)
- Excel(仅支持.csv):
- 数据导出
- R:
save(对象, file="路径+文件名")
- Excel(.csv):
write.csv(对象, file="路径+文件名")
- txt:
write.table(对象, file="test.txt",sep = "分隔符")
- R:
对象(数据)查看
- 可使用多种函数对已经加载(创建)的对象进行查看, 每种函数的功能各有侧重.
View(对象)
可在左上调出窗口显示对象/数据情况;head(对象, 条目数)
可在控制台内显示前n条数据情况, 不设置数目时默认6条;tail(对象, 条目数)
可在控制台内显示后n条数据情况, 不设置数目时默认6条;names(对象)
可在控制台内显示对象内所有变量的名称(即header).str(对象)
可在控制台显示对象的条目数及变量数, 并显示每个变量的名称、类型以及前10条目的值.dim(对象)
可在控制台显示对象的条目数及变量数
对象(数据)的统计描述
函数最基本形式 | 函数用途 | 备注 |
---|---|---|
summary(对象) |
数值变量显示最大,最小,算数均,中位,四分位距; 分类变量显示各值对应计数; 若存在缺失值显示缺失值数目. |
|
mean(对象) |
计算算数平均数 | 对象须为数值型变量 |
sd(对象) |
计算标准差 | 对象须为数值型变量 |
max(对象) |
计算最大值 | 对象须为数值型变量 |
min(对象) |
计算最小值 | 对象须为数值型变量 |
tips: 使用rm.na= 参数可在计算相应统计量时自动移除缺失值 |
对象(数据)简单操作
函数表达式 | 操作效果 | 备注 |
---|---|---|
names(data)<-c("1","2","3") |
将data数据框前三个变量的变量名更改为1. 2. 3 | 数据框内变量超出3个时, 3个之后的变量名将丢失,如果赋予名称过多则无法执行 |
data=rename(data,c("old1"="new1", "old2"="new2")) |
将data数据框内变量名指定替换 | rename()为plyr包函数 |
as.date(data) as.numeric(data) as.charactor(data) as.factor(data) 等等 |
将制定变量转换类型, 转换后可赋值给对象 | |
subset(data, select=c(v1,v2)) subset(data, v1==n) data[row,colum] |
提取指定数据框的行/列 | 两种方式是否完全等价未知; t[] 默认取行 |
data$v=data$v1+test$v2 |
对数据框内已有数据进行计算并写入到数据框中成为新变量 | |
substr(strData,1,3) |
从字符串变量中提取特定位数的字符串 | |
mutate(data,) |
对data数据框同时进行多种操作, mutate()的主要作用是简化代码 | |
join(data1, data2, by= ,type=) |
将不同数据框按照一定标准合并 | join()函数不需要对表格进行排序 |
str_count(data, v) |
对data数据框内的v变量的每一种值进行计数 | stringr包函数 |
order(x) |
对数据框按照特定变量进行排序 | 使用- 可调节为降序 |
使用R绘制统计图
- R中常用的统计图绘制包有两种:
- graph(自带): 基本作图
- ggplot2(需要安装):高级作图, 作图自定义程度高, 成品漂亮