R语言实战笔记

部分源代码来自网络——如若侵犯了您的权益,请与我联系,我将立刻删除。《R语言实战》(Venables&Ripley(2000)Chambers(2008))
总结:脑残地按一定格式调用函数,尽情蹂躏数据。

1 R基础
在R中,对象(object)是指可以赋值给变量的任何事物,包括常量、数据结构、函数,甚至图形。
变量可归结为名义型、有序型或连续型变量。
2 数据的准备
可以使用read.table()从带分隔符的文本文件中导入数据。此函数可读入一个表格格式的文件并将其保存为一个数据框。
使用R来访问存储在外部数据库中的数据是一种分析大数据集的有效手段,并且能够发挥SQL和R各自的优势。
x <- c(1:10)
#生成向量数据
opar <- par(no.readonly =TRUE)
#保留了当前的图形参数设置
3 图形初阶
学习了如何修改一副图形的坐标轴、字体、绘图符号、线条和颜色,以及如何添加标题、副标题、标签和文本、图例和参考线,看到了如何指定图形和边界的大小,以及将多幅图形组合为实用的单幅图形。
要创建次要刻度线,你需要使用Hmisc包中的minor.tick()函数。
通过函数text()和mtext()将文本添加到图形上。
par(mar =c(5,4,4,8)+0.1)
#增加边界大小
plot(x,y,type = "b",pch =21,col ="red",yaxt ="n",lty ="3",ann ="FALSE")
#绘制x对y的图形
par(lwd =2,cex =1.5, font.lab =2)
#增加线条、文本、符号、标签的宽度或大小
polt(dose,drugA,type ="b",pch =17, lty =1, col ="red", ylim =c(0,60),main = "Drug Dosage",ylab ="Drug Response")
#绘制主图
lines(dose,drugB,type ="b",pch =17, lty=2, col ="blue")
#向主图添加线条
library(Hmisc)
minor.tick(nx =3,ny =3,tick.ration =0.5)
#添加次要刻度线
legend("topleft",inset = .05,title = "Drug Type", legend = c("A","B"), lty =c(1,2),pch =c(15,17), col =c("red","blue"))
#添加图例
par(mfrow =c(2,2))
#在par()函数中使用图形参数mfrow=(nrows,ncols)来创建按行填充的、行数为nrows、列数为ncols的图形矩阵。
layout(matrix(c(1,1,2,3),2,2,byrow = TRUE)
#将第一幅图置于第1行,两幅图置于第2行。单第1行中图形的高度是第2行中图形高度的二分之一。
par(fig =c(0,0.8,0.55,1),new =TRUE)
bloxplot(mtcars$wt,horizontal = TRUE,axes =FALSE)
#参数fig=的取值范围是一个形如c(x1,x2,y1,y2)的数值向量。

在导入和清理完数据后,下一步通常就是逐个探索每个变量。这将为你提供每个变量分布的信息,对理解样本的特征、识别意外的或有问题的值。这一步可以解释变量间的基本关系,并且对于建立更复杂的模型来说是有益的第一步。

4 基本数据管理
mydata <- transform(mydata,sumx = x1+x2,meanx = (x1+x2)/2)
#transform()函数简化了按需创建新变量并将其保存到数据框中的过程。
leadership <- within(leadership,{agecat <- NA agecat[age >75] <-"Elder"  agecat[age >=55 & age <=75] <-"Middle Aged"  agent[age <55]<-"Young"  })
#函数within()与函数with()类似,不同的是它允许你修改数据框。
is.datatype as.datatype
#类型转换函数
total <-merge(dataframeA,dataframeB,by ="ID")
total <-cbind(A,B)
#将dataframeA和dataframeB按照ID进行了合并;直接合并
total <-rbind(dataframeA,dataframeB)
#纵向联结通常用于向数据框中添加观测
#数据框中的元素是通过dataframe[row indices,column indices]这样的记号来访问的
newdata <- leadership[which(gender == 'M' & age >30),]
#选择了所有30岁以上的男性
newdata <- subset(leadership,gender == 'M' & age >25,select =gender:q4)
#选择了所有25岁以上的男性,并保留了变量gender到q4
5 高级数据管理
set.seed(1234)
mean <- c(230.7,146.7,3.6)
sigma <- matrix(c(15360.8,6721.2,-47,1,6721.2,4700.9,-16.5,-47,1,-16.5,0.3),nrow =3,ncol =3)
mydata <- mvrnorm(500,mean,sigma)
dim(mydata)
#生成服从多元正态分布的数据
options(digits=2)
z <- scale(roster[,2:4])

#限定输出小数点后2位
score <- apply(z,1,mean)
#默认情况下,函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1的标准化
roster <- cbind(roster,score)
#计算综合得分,添加到花名册中
y <- quantile(roster$score,c(.8,.6,.4,.2))
#通过使用逻辑运算符,将学生的百分位数排名重编码为一个新的类别型成绩变量
name <- strsplit((roster$Student),"")
#以空格为界把学生姓名拆分为姓氏和名字
Firstname <-sapply(name,"[",1)
Lastname <-sapply(name,"[",2)
#sapply()提取表中成分,"["是一个可以提取某个对象的一部分的函数
roster[order(Lastname,Firstname),]


获取数据基本信息的图形技术和统计方法。
6 基本图形
barplot(counts,main ="Stacked Bar Plot",xlab ="Treatment",ylab ="Frequency",cole =c("red","yellow","green"),legend = rownames(counts))
#堆砌条形图
barplot(counts,main ="Grouped Bar Plot",xlab ="Teeatment",ylab ="Frequency",col =c("red","yellow","green"),legend = rownames(counts),beside =TRUE)
#分组条形图
hist(mtcars$mpg)
#简单直方图
hist(mtcars$mpg,breaks=12,col ="red",xlab ="Miles Per Gallon",main ="Colored histogram with 12 bins")
#指定组数和颜色
hist(mtcars$mpg,freq=FALSE,breaks=12,col ="red",xlab="Miles Per Gallon",main ="Histogram,rug plot,density curve")
rug(jitter(mtcars$mpg))
lines(density(mtcars$mpg),col ="blue",lwd =2)
#添加轴须图
x <- mtcars$mpg
h <- hist(x,break =12,col ="red",xlab ="Miles Per Gallon",main ="Histogram with normal curve and box")
xfit <-seq(min(x),max(x),length =40)
yfit <- yfit*diff(h$mids[1:2])*length(x)
lines(xfit,yfit,col ="blue",lwd =2)
box()
#添加正态密度曲线和外框

7 基本统计分析
library(reshape)
dstats <- function(x) (c(n =length(x),mean =mean(x),sd =sd(x)))
dfm <- melt(mtcars,measure.vars= c("mpg","hp","wp"),id.vars =c("am","cyl"))
cast(dfm,am +cyl+variable~.,dstats)
#描述性统计量
mytable <- xtabs(~Treatment+Sex+Improved,data =Arthritis)
ftable(mytable)
margin.table(mytable,1)
#三维列联表,边际频数,margin.table()和prop.table()函数分别生成边际频数和比例
margin.table(mytable,c(1,3))
#治疗情况*改善情况的边际频数
ftable(prop.table(mytable,c(1,2))
#治疗情况*性别的各类改善情况比例
library(vcd)
mytable <-xtabs(~Treatment+Improved,data=Arthritis)
chisq.test(mytable)
mytable <-tabes(~Improved+Sex,data=Arthritis)
chisq.test(mytable)
#卡方独立性检验,治疗情况和改善情况不独立,性别和改善情况独立
mytable<- xtabs(~Treatment+Improved,data=Arthritis)
fisher.test(mytable)
#使用fisher.test()函数进行Fisher精确检验
mytable <-xtabs(~Treatment+Improved +Sex,data=Arthritis)
mantelhean.test(mytable)
#mantelhean.test()函数可以进行Cochran-Mantel-Haenszel卡方检验
table2flat <-function(mytable){
   dr <-as.data.frame(mytable)
   rows <-dim(df)[1]
   cols <-dim(df)[2]
   x <- NULL
   for (i in 1:rows){
    for (j in 1:df$Freq[i]){
        row <- df[i,c(1:(cols-1))]
        x <-rbind(x,row)
    }
   }  
   row.names(x)<-(1:dim(x)[1])
   return(x)
}
#接受R中的表格(行列数任意)并返回一个扁平格式的数据库。
library(MASS)
t.test(Prob~So,data=UScrime)
#独立样本的T检验
t.test(y1,y2,paired=TRUE)
sapply(UScrime[c("U1","U2")],function(x)(c(mean=mean(x),sd =sd(x)))
with(UScrime,t.test(U1,U2,paired=TRUE))
#非独立组差异t检验
wilcox.test(y~x,data)
wilcox.test(y1,y2)
#无法满足t检验或ANOVA的参数假设,可以转而使用非参数方法。
class <-state.region
var <-state.x77[,c("Illiteracy")]
mydata<-as.data.frame(cbind(class,var))
rm(class,var)
library(npmc)
summary(npmc(mydata),type="BF")
aggregate(mydata,by=list(mydata$class),median)
#成对组间比较结果
#各类别的文盲率中间值

对数值型结果变量和一系列数值型和(或)类别型预测变量之间的关系进行建模。


8 回归

fit2 <- lm(weight~height+ I(height^2),data= woman)
summary(fit2)
plot(women$height,women$weight)
lines(women$height,fitted(fit2))
#拟合含二次项的等式
scatterplotMatrix()函数默认在非对角线区域绘制变量间散点图,并添加平滑和线性拟合曲线。
fit <- lm(Murder~Population +Illiteracy+Income +Frost,data=states)
#当预测变量不止一个时,回归系数的含义为,一个预测变量增加一个单位,其他预测变量保持不变时,因变量要增加的数量。
#两个预测变量的交互项显著,说明响应变量与其中一个预测变量的关系依赖于另外一个预测变量的水平。
library(gvlma)
gvmodel<- gvlma(fit)
#使用gvmodel对线性模型假设进行综合验证
#回归诊断发现问题,处理回归假设问题:删除观测点;变量变换;添加或删除变量;使用其他回归方法。
fit<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)
#relweights()函数,计算预测变量的相对权重

9 方差分析
R中基本的实验设计建模
拟合并解释方差分析模型
检验模型假设

10 功效分析
判断所需样本量
计算效应值
评价统计功效

11 中级绘图
二元变量和多元变量关系的可视化
绘制散点图和折线图
理解相关图
学习马赛克图和关联图

12 重抽样与自助法
理解置换验证的逻辑
在线性模型中应用置换检验
利用自助法获得置信区间

高级方法
13 广义线性模型
建立广义线性模型
预测类别型变量
计数型数据建模

14 主成分和因子分析
主成分分析
探索性因子分析
其他潜变量模型

15 处理缺失数据的高级方法
识别数据模式的可视化
完整案例分析
缺失数据的多重插补法

16 高级图形进阶
Trellis图形和lattice包
ggplot2的图形语法
交互式图形

生物信息*类常见图
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值