https://github.com/kabacoff/RiA2
第一部分 入门
第1章 R语言介绍
附录G:如何对R进行版本升级
mean() # 均值
sd() # 标准差
cor(x,y) # 相关度
plot(x,y)
demo() # 大致了解R能够作出何种图形
获取帮助
> summary(x) # 数据的摘要统计量
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0399 0.1641 0.3218 0.3905 0.6107 0.9843
source("filename.R") # 执行一个脚本
sink("filename") # 文本输出,sink()类似dev.off()
.libPaths() # 显示库所在位置
library() # 显示库中有哪些包
search() # 哪些包已加载
update.packages() # 更新已经安装的包
installed.packages() # 查看已安装包的描述
help(package = "vcd") # 某个包的简短描述
第2章 创建数据集
2.2 数据结构..................................................20
2.2.1 向量..............................................21 c()
2.2.2 矩阵..............................................22 matrix()
2.2.3 数组..............................................23 array()
2.2.4 数据框 ..........................................24 data.frame()
2.2.5 因子..............................................27 factor()
2.2.6 列表..............................................29 list()
标量是只含一个元素的向量,例如f <- 3、 g <- "US"和h <- TRUE。
X[i,]指矩阵X中的第i行,X[,j]指第j列,X[i, j]指第i行第j个元素。
2.2.4 数据框
attach() # 将数据框从R搜索路径中添加
detach() # 移除
with(mtcars,{
print(summary(mpg))
plot(mpg,disp)
plot(mpg,wt)
})
特殊赋值符 <<-,保存到with之外的全局环境中
patientdata <- data.frame(patientID, age, diabetes, status, row.names=age) # 向量组合起来
2.2.5 因子
status <- factor(status, order=TRUE)
sex <- factor(sex, levels = c(1,2), labels = c("male","female"))
注意
str() # 显示对象结构
summary() # 显示对象的统计概要
class() # 显示对象类型
2.2.6 列表
mylist <- list(title=g,ages=h, j, k)
mylist[[2]]
mylist[["ages"]]
mylist$ages
第3章 图形初阶
3.1 使用图形..................................................40
3.2 一个简单的例子 ......................................42
3.3 图形参数..................................................43 par()
3.3.1 符号和线条 ..................................45
3.3.2 颜色..............................................46 RColorBrewer
3.3.3 文本属性 ......................................47
3.3.4 图形尺寸与边界尺寸 ...................49
3.4 添加文本、自定义坐标轴和图例 ...........50
3.4.1 标题..............................................51 title()
3.4.2 坐标轴..........................................52 axis()
3.4.3 参考线..........................................54 abline()
3.4.4 图例..............................................54 legend()
3.4.5 文本标注 ......................................56 text() mtext()
3.5 图形的组合..............................................58 par() layout()
3.6 小结 .........................................................64
abline(lm(mpg~wt)) # 添加拟合线
par() # 生成含有当前图形参数设置的列表
# 复制一份当前的图形参数设置
opar <- par(no.readonly=TRUE)
par(opar)
title() # 为图形添加标题和坐标轴标签
axis() # 自定义坐标轴
lines()
mtext()
abline() # 添加参考线
legend()
par(ask=TRUE) # 按键来看下一个图
axis(2, at=x, labels=x, col.axis="red", las=2) # 自定义坐标轴
# 文本标注(标注单一点)
text(wt, mpg,
row.names(mtcars),
cex=0.6, pos=4, col="red")
text(3,3,"Example of default text")
# 图形组合
par(mfrow=c(2,2))
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))
第4章 基本数据管理
# 运算结果添加到最后一列
mydata$sumx <- mydata$x1 + mydata$x2
mydata$meanx <- (mydata$x1 + mydata$x2)/2
mydata <- transform(mydata,
sumx = x1 + x2,
meanx = (x1 + x2)/2)
within()与with()类似
names(leadership)[2] <- "testDate" # 列名修改
is.na()
leadership[age == 99, "age"] <- NA
leadership$age[leadership$age == 99] <- NA
newdata <- na.omit(leadership) # 有NA的行删除
4.7 类型转换
# 排序
newdata <- leadership[order(leadership$age),]
newdata <- leadership[order(gender, age),]
newdata <- leadership[order(gender, -age),] #降序
merge()
cbind() # 横向合并,有相同的行数以同顺序排序
rbind() # 纵向合并,有相同的变量,顺序不必一定相同
# 剔除变量
myvars <- names(leadership) %in% c("q3", "q4") # 判断前面一个向量内的元素是否在后面一个向量中,返回布尔值。
leadership[!myvars]
newdata <- leadership[c(-8,-9)] # 已知变量位置
第5章 高级数据管理
set.seed(1234)
runif(5)
x <- pretty(c(-3,3),30) # 连续分割为30个区间(31个数)
apply(mydata, 1, mean) # 计算每行均值
# 分列
name <- strsplit((roster$Student), " ") # 返回列表
Lastname <- sapply(name, "[", 2)
Firstname <- sapply(name, "[", 1)
# 整合数据
aggdata <-aggregate(mtcars, by=list(cyl,gear),
FUN=mean, na.rm=TRUE) # cyl,gear归类,其他列求平均值
# reshape2 包
melt, dcast
scale(mydata)*SD+M # 任意均值和标准差的标准化
# 概率函数
d = 密度函数(density)
p = 分布函数(distribution function)
q = 分位数函数(quantile function)
r = 生成随机数(随机偏差)
nchar() # 字符数量
substr(x,2,3) <- "aa" # 替换
grep, sub # 搜素某个文本字符串或正则表达式
seq(1,10,2)
for (i in 1:10) print("hello")
if (cond) stat1 else stat2
第二部分 基本方法
第6章 基本图形
paste(lbls, pct) # 合并两个向量
hist(mtcars$mpg, breaks=12) # 指定组数
# 轴须图
# 可比较的核密度图 P121 代码清单6-8
# 箱线图
boxplot.stats()
# 小提琴图
# 点图
第7章 基本统计分析
sapply(mtcars[myvars],fivenum) # 多列
fivenum() # 返回最小值 下四分位数 中位数 上四分位数 最大值
var() # 样本方差
多种R包计算描述性统计量
# 一维
table() # 默认忽略NA
prop.table(mytable)
prop.table()*100
# 二维
table(A,B)
xtabs(~A+B,data=)
addmargins() # 边际和
# 独立性检验
chisq.test() # 卡方独立性检验
fisher.test() # Fisher精确检验
mantelhaen.test() # Cochran-Mantel—Haenszel检验
# 相关
cor()
cov() # 协方差
pcor() # 偏相关
corr.test() # psych包 显著性检验
pcor.test()