R语言菜鸟练习笔记2

合集下载

R语言基础培训第二讲常用统计分析

R语言基础培训第二讲常用统计分析

R语言基础培训第二讲常用统计分析在R语言中进行统计分析是其强大功能之一、R语言提供了许多常用的统计分析函数和包,可以帮助我们进行数据的描述、分布分析、相关分析等。

一、描述统计分析描述统计分析主要是对数据进行整理和总结,常用的统计描述指标包括均值、中位数、众数、标准差、方差、四分位数等。

在R中,常用的函数有mean、median、mode、sd、var、quantile等。

下面以一个实例进行说明:数据:x<-c(1,2,3,4,5,6,7,8,9,10)1. 均值:mean(x),结果为5.52. 中位数:median(x),结果为5.53. 众数:由于R语言没有内建的众数函数,可以使用table函数统计各值出现的频数,再选出频数最高的值,实现代码如下:table_result <- table(x)mode_value <- as.numeric(names(table_result)[table_result == max(table_result)])结果为54. 标准差:sd(x),结果为3.035. 方差:var(x),结果为9.176. 四分位数:quantile(x),结果为1, 3.25, 5.5,7.75, 10二、分布分析分布分析主要是对数据的分布情况进行分析,包括概率分布、频数分布等。

R语言提供了多种分布函数和绘图函数,可以帮助我们进行分布分析。

1. 正态分布:R中的dnorm函数用于计算正态分布的概率密度函数值,pnorm函数用于计算正态分布的累积分布函数值,qnorm函数用于计算正态分布的分位数值,rnorm函数用于生成服从正态分布的随机数。

下面以均值为0,标准差为1的正态分布为例进行说明:x <- seq(-3, 3, 0.01)y <- dnorm(x, mean = 0, sd = 1)plot(x, y, type = "n", xlab = "x", ylab = "Probability Density", main = "Normal Distribution")lines(x, y, col = "blue", lwd = 2)结果为一条钟形曲线,表示正态分布的概率密度函数。

R语言教程笔记

R语言教程笔记

R 编程笔记2简介1.突出特点:【多领域的统计资源】目前在R 网站上约有2400个程序包,涵盖了基础统计学、社会学、经济学、生态学、空 间分析、系统发冇分析、生物信息学等诸多方而。

【免费】2.缺点:【占用内存】所有的数据处理在内存中进行,不适于处理超大规模的数据。

【运行速度稍慢】即时编译,约相当于C 语言的1/20。

3. CRAN :全称 The Comprehensive R Archive Networks由世界几十个镜像网站组成网络.提供F 载安装程序和相向软件包。

0镜像更新频率一般为天。

推荐镜像: 中国的镜像:数学所:即时更新的CRAN 源:界而下如下(版本)4.R 程序包(R packages )什么是R 程序包R 程序包是多个函数的集合,具有详细的说明和示例。

每个程序包包含R 函数、数据、帮助文件、描述 文件等window 下是zip 形式,安装时不要解压缩,R 程序包是R 功能扩展,特定的分析功能,需要用相 应的程序包实现。

例如:系统发冇分析,常用到ape 程序包,群落生态学vegan 包等。

4.2常用R 程序包ade4 adephylo ape利用欧几里得方法进行生态学数据分析 系统进化数据挖掘与比较方法系统发育与进化分析apTreeshape boot cluster ecodist FD进化树分析Bootstrap 检验聚类分析生态学数据相异性分析 功能多样性分析geiger 物种形成速率f j 进化分析Graphics lattice 栅格图绘图maptools空间对象的读取和处理R Console7PJ2S1R version Z.L1.1 (2010-05-31)Copyrlght IC) 2010 The R FouDd^t-aon £oc C OBDU S DJTSE« 3-M0OSL-07-DD 是自由恢件,不带任何担佩・在菓些条件下你可以梓我口由散布.用'llcerwe |) *或,licenced *来希阪布的库融*件.P •是个合作tt 划,利许多入为NiS 出丁贡献・•contcibut.ora I),来石合作吉的i#细用会警诉你如何在出版樹中正礎也引用卩戒口性序包・ffi'derrcO 1来着一些示范徑序,ffl* heLp (I •M 文件,戏用'lielp.atatcd '迪过时血列觅密隶薈?ft 助gf4. 用51 ■退出R ・(處来滋存的工隹空间已圧胆】> hlflLotry(|> rate<-c(2D z 22, 2今.26, 2B, 30, 32. 3" 36, 3B Z 40, 121> tmpMrLty <-c(0.4z 9・» 11.0z 10.^f 15.3, 14・6 13 2/ X4.7Z 15.4Z 10.5r 1D.9J > ploi | impxiif Lty^6ca| >rca<-(xnpurit ?-e)ceg<-1 tn (in pur it 产 rat e) J 1 -r.u : M .;, • . •« c«r ■] 丈再施9(蔑他tfffsva 屯in-nix)rate<-c(ZD, ZZ, 2仇 ZC r Z0z 、0, 32, 3G Z 3 0z 今 impMtLCy <-C(8.4, 9・5, 11.8Z 10.13・3, L4・8, 13 plot | Uiputlty-totcl6LXlft(lornula - lrwpurlty - cate) JSecidMala:XlhiQ Ftedlan 如 Soxs\unrar7(recj) ^ve.m,gerFrVi^习筋料X 救梧井桁黃花宝典\\R 语专 hiatocycimgev mvpart nlme ouch pgirmessphangorn picante广义加性模型相关 多变量分解线性及非线性混合效应模型 系统发弃比较 生态学数据分析系统发育分析群落系统发育多样性分析raster ffi 格数据分析与处理 seqinrDNA 序列分析sp空间数据处理spatstat spla ncs stats SDMTools vegan CRAN Task Views空间点格局分析,模型拟合与检验 空间与时空点格局分析R 统计学包物种分布模型工具植物与植物群落的排序,生物多样性计算中有对程序包的分类介绍4.3 R 程序包安装1.用函数(),如果已经连接到互联网,在括号中输入要安装的程序包洛称,选择镜像后,程序将自动下载并安装程序 包。

R语言笔记

R语言笔记

安装包install.packages(pkgs,depend=TRUE)SVMLibrary(e1071)fit.svm=svm(AL~.,data=train)fit.svmsvm.pred=predict(fit.svm,data=train)ROC曲线Library(pROC)roc1 <- roc(myData$label, myData$score) roc2 <- roc(myData2$label, myData2$score) plot(roc1, col="blue")plot.roc(roc2, add=TRUE, col="red")nomogram语言> require(rms)> w<-read.table("abc.prn",header=T)> attach(w)> ddist <- datadist(T,C)> options(datadist='ddist')> f <- lrm(AL~ T + C )> nom <- nomogram(f, fun=plogis, fun.at=c(.001, .01, .05, seq(.1,.9, by=.1), .95, .99, .999), lp=F, funlabel="Risk for AL")> plot(nom)输出结果> x<-svm.pred> write.table(x,"C:\\Users\\admin\\Desktop\\x.csv",sep=",")校正曲线(示例)library(rms)ddist<-datadist(BMIc, location_c2, thickc, Tc, N, histc, dif, CA199c)options(datadist='ddist')f<-lrm(PM~ BMIc + location_c2 + thickc + Tc + N + histc + dif + CA199c,x=T,y=T)nom<-nomogram(f,fun=plogis,fun.at=c(.001,.01,.1,.3,.5,.7,.9,.99,.999),funlabel="Probabili ty",lp=F)plot(nom,cex.axis=1.0)validate(f,method="boot",B=1000,dxy=T)cal<-calibrate(f,method="boot",B=1000)plot(cal,scat1d.opts=list(nhistSpike=240,side=1,frac=0.08,lwd=1,nint=50))导入数据w=read.table("clipboard",header=T,fill=TRUE)index计算fp <- predict(f)validate(f,method="boot",B=1000,dxy=T)rcorrcens(AL~predict(f),data=w)外部验证f2=lrm(A~predict(f,newdata=data2),x=T,y=T,data=data2)validate(f2,method="boot",B=1000,dxy=T)rcorrcens(A~predict(f2),data=data2)Decision curvelibrary(rmda)simple<- decision_curve(AL~collagenscore+location,data = data3, family = binomial(link ='logit'),thresholds= seq(0,1, by = 0.01), confidence.intervals =0.95,study.design ='case-control',population.prevalence = 0.16)> plot_decision_curve(List,s= c('Model'),cost.benefit.axis =T,col =c('red'),confidence.intervals =FALSE,standardize = FALSE)plot_clinical_impact(simple,population.size = 1000,cost.benefit.axis = T, n.cost.benefits= 8,col = c('red','blue'), confidence.intervals= T)柱状图library(ggthemes)library(ggplot2)w=read.table("clipboard",header=T,fill=TRUE)p1=ggplot(data=w,mapping=aes(x=G,y=C,fill=A,group=A))+geom_bar(stat="identity",widt h=1)p1 <- p1 + labs(x="",y="Collagen score")p1 <- p1 + theme(axis.title.y = element_text(size = 12*1.33, angle = 90))p1=p1+theme(panel.background = element_rect(fill = "transparent",colour = NA), panel.grid.minor = element_blank(), panel.grid.major = element_blank(),plot.background = element_rect(fill = "transparent",colour = NA))p1=p1+ylim(-2,5)data<-read.table("clipboard",header=F,fill=TRUE)df<-data[-1]library(e1071)fit.svm<-svm(V2~.,data=df)svm.pred<-predict(fit.svm,data=df)svm.predSVMdata<-read.table("clipboard",header=F,fill=TRUE)df<-data[-1]set.seed(1234)train<-sample(nrow(df),0.7*nrow(df))df.train<-df[train,]df.validata<-df[-train,]library(e1071)set.seed(1234)fit.svm<-svm(V2~.,data=df.train)fit.svmsvm.pred<-predict(fit.svm,data=df.train)svm.predtuned<-tune.svm(V2~.,data=df.train,gamma=10^(-6:1),cost=10^(-10:10)) tunedfit.svm<-svm(V2~.,data=df.train,gamma=,cost=)svm.pred<-predict(fit.svm,data=df.train)svm.predx<-svm.predwrite.table(x,"C:\\Users\\admin\\Desktop\\x.csv",sep=",")lassodata<-read.table("clipboard",header=F,fill=TRUE)data<-as.matrix(data)x<-data[,1:11]y<-data[,12]library("glmnet")cv.fit=cv.glmnet(x,y,family='binomial',type.measure="auc",nfolds=10) plot(cv.fit,xlab="log(λ)")cv.fit$lambda.mincv.fit$lambda.1sefit<-glmnet(x,y,family="binomial")plot(fit, xvar = "lambda",label="TRUE",xlab="log(λ)")coefficients<-coef(fit,s=cv.fit$lambda.1se)>Active.Index<-which(coefficients!=0) #系数不为0的特征索引>Active.coefficients<-coefficients[Active.Index] #系数不为0的特征系library(pROC)library(ggplot2)data(aSAH)rocobj1 <- roc(aSAH$outcome, aSAH$s100b)auc(rocobj1)plot(rocobj1)plot(rocobj1, print.auc=TRUE, auc.polygon=T, max.auc.polygon=F,auc.polygon.col="skyblue", print.thres=F)热图library(pheatmap)pheatmap(data1,cluster_row = T, cluster_col = F,cellwidth = 5,cellheight = 5,fontsize = 4,border_color=F)。

R语言学习笔记

R语言学习笔记

R语言学习笔记
最近正在欢天喜地的学习R语言,现在的阶段是开始R语言作图,为了和大家交流与共勉,特在此给自己Mark一下。

利用R自带的women数据集,做散点图,
先看一下women数据集
women数据表一共只有身高、体重两个变量,15条记录,做散点图可以一目了然的了解两个变量的关系。

plot women
现在我要对散点加上颜色
plot(women,col="red")
做一个完整的图,要有主标题、副标题、现在加上并用不同的颜色以示区分
plot(women,main="身高体重散点图",sub="数据来源于women数据集",
col="red",col.main="yellow",col.sub="purple")
进一步在坐标轴、标签进行不同颜色的显示
plot(women,main="身高体重散点图",sub="数据来源于women数据集",
col="red",col.main="yellow",col.sub="purple",col.axis="gree n",
b="blue")。

《r语言实战》菜鸟学习笔记(一)

《r语言实战》菜鸟学习笔记(一)

《r语⾔实战》菜鸟学习笔记(⼀)打算学习⼀下r语⾔(windows),不知道从什么地⽅开始学习,加上本⼈的数理统计基础⽐较薄弱,所以就漫⽆⽬的的从⽹上找教程。

其实我逛的最多的⽹站还是知乎,读了好多很好的答案后,我选择了两本书,《153分钟学会r》《》。

前者⼤概扫了⼀眼,不太适合边看书边敲代码(我个⼈⽐较喜欢这种),所以后者就⽐较适合我,这套书还是⽐较适合菜鸟看的,我还看过《集体智慧编程》,很不错。

下⾯开始了第⼀段程序。

(博客园没有r语⾔选项,只好⽤plain txt了)age <- c(1,3,5,2,11,9,3,9,12,3)weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)mean(weight)plot(age,weight)q()代码很简单,不多说了。

这段代码要注意的地⽅有:正斜杠,⼩数点后三位,均匀分布。

setwd("F:/R Code") #如果不存在需要使⽤dir.create()创建⽬录options()options(digits=3)x<-runif(20)#摘要统计量summary(x)#直⽅图hist(x)savehistory()save.image()q()接下来就要讨论r语⾔的数据结构了r语⾔包含了4中数据结构:向量,矩阵,数组和数据框。

1.向量是⼀维的a <- c(1,2,5,3,6,-2,4)2.矩阵是⼆维的cells <- c(1,26,24,68)rnames <- c("R1","R2")cnames <- c("C1", "C2")mymatrix <- matrix(cells,nrow=2, ncol=2, byrow=TRUE,dimnames=lilst(rnames,cnames)) #按⾏填充3.数组可以是多维的dim1 <-c("A1","A2")dim2 <- c("B1","B2","B3")dim3 <- c("C1","C2","C3","C4")#array(vector, dimanesions,dimnames)z <- array(1:24, c(2,3,4), dimnames=list(dim1,dim2,dim3))4.数据框这个就是⼤杂烩了patientID <- c(1,2,3,4)age <- c(25,34,28,52)diabetes <- c("Type1", "Type2", "Type1", "Type1")status <- c("Poor","Improved", "Excellent", "Poor")patientdata <- data.frame(patientID, age, diabetes, status)取数据框中的某⼀个元素:patientdata age,如果不想每⼀次都输⼊patientdata,可以使⽤attach() detach()或者单独使⽤函数with()来简化代码。

R语言知识点汇总及课后题梳理档3(接档2)

R语言知识点汇总及课后题梳理档3(接档2)

课后题主要以本书为例,内容重点各个版本的都整理在一块了,大家自行查阅。

R语言实现:使用DMwR包中的函数lofactor(),基本格式为:lofactor(data, k)其中,data为数值型数据集;k为用于计算局部异常因子的邻居数量。

聚类将那些不属于任何一类的数据作为异常值。

作为一位数据分析人员,应当警惕编码使用的不一致问题和数据表示的不一致问题,如格式不一致(日期“2018/05/25”和“25/05/2018”)、类型不一致、命名不一致等。

编码不一致和数据表示不一致的问题通常需要人工检测,当发现一定规律时可以通过编程进行替换和修改。

若存在不一致的数据是无意义数据,可以使用缺失值处理方法进行相应处理。

数据矛盾(不一致)还可能是由于被挖掘的数据来自不同的数据源,对于重复存放的数据未能进行一致性更新造成的,类似于数据库参照完整性。

例如,两张表中都存放了用户电话号码,但在用户的电话号码发生给变时,只更新了一张表中的数据,那么这两张表就有了不一致的数据。

这要借助数据库的完整性理论。

分布分析用于解释数据分布的特征和类型,分为定量数据和定性数据两种类型。

(1)定量数据的分布分析方法1:直方图在R语言中,使用hist()函数画出样本的直方图。

方法2:核密度图与直方图相配套的是核密度图,其目的是用已知样本,方法3:茎叶图与直方图比较,茎叶图更能细致地看出数据分布结构。

R语言中使用stem()函数绘制茎叶图。

在茎叶图中,纵轴为测定数据,横轴为数据频数,数据的十分位表示“茎”,作为纵轴的刻度;个位数作为“叶”,显示频数的个数,作用与直方图类似。

(2)定性数据的分布分析对于定性变量,常常根据分类变量来分组,可以采用饼图来描述定性变量的分布。

饼图的每一个扇形部分代表每一类型的百分比或频数,根据定性变量的类型数目将饼形图分成几个部分,每一部分的大小与每一类型的频数成正比。

)对比分析原理,对比分析,就是给孤立的数据一个合理的参考系,否则孤立的数据毫无意义。

R 菜鸟入门

R 菜鸟入门
跟很多理科生一样,dapeng曾用过 Excel(本科论文)和 OriginLab (硕士论文),但 博士期间换用了 R。见到好的,只要不违法不缺德,自然要换。
思考:你家附近的一家餐厅又贵又脏又难吃,但你不知道有别的餐厅,没选择的情 况下习惯了这家。当你得知附近还有一家整洁便宜服务好的,你愿不愿意换?
有人读到这里可能会被吓住了:sqrt,开玩笑,我怎么记得住啊!注意 R 入门第一秘 诀: 不要被 R 吓住! 试试只输入 s,然后按 tab 键,就会出现贴心的提示,所有以 s 打头的函数都列在里边了,用鼠标或箭头键选取就行了。在 s 后面再接着输入 q 试 试。
其实,常用的函数就那么几个,用几次就不需要贴心提示了。而且函数名称都很好 记,sqrt 就是 squre root 的缩写,你不是恰好想练英文吗。实在记不住,那就用基本 运算符来求乘方好了, 9 ^ 0.5 即可。将来你甚至可以把 sqrt 改名叫做 kaipingfang。条条道路通罗马, R 很灵活的。 常用函数都可以顾名思义:四舍五入 round(), 截取整数 trunc(), 开平方 sqrt(),求绝对值 abs(),指数函数 exp(),自然对数函数 log(),以 10 为底的 对数函数 log10(),三角函数 sin() cos() tan() asin() acos() atan()。
个问题如果你有两个解决办法,那就选用你曾用过的那个。时间有富余的话再试另 一个。 第三秘诀: 与人分享 !跟同学或同事分享 R 代码。这就是为啥 dapeng 写这个系 列的帖子。 初见 R,可以用在线版品尝一下,点这里或这里,用法在这里不做介绍了,因为 dapeng 还是建议菜鸟从下载安装开始。点击这里下载 R 程序。R 是跨平台的,一般来说,Linux 用户自己善于折腾,不必 dapeng 在这里唧唧歪歪了,因此晴耕雨讀志以 Windows 系统 为例作介绍。目前 R 的最新版 2.15.3 安装程序只有 47 M,比起几个G的 Matlab 要苗 条多了。下载完毕后安装,一路下一步的傻瓜式安装即可。安装完毕之后就可以用了。 不过,初见的 R 在裸奔,界面丑陋, dapeng 建议给 R 穿上一件衣服,奔时看上去体面 一些。能穿的免费衣服很多,人们各有所爱。dapeng 用过 Tinn-R、 RKward、 Vim+插件 之后,最后选定了 Rstudio (点这里下载,免费正版哦)。选用 Rstudio 有诸多好处,最 明显的就是把 R 常用的界面整合到了一起。 看吧,华丽丽的就像 Matlab ,默认四个子 窗口:左上窗输入代码,左下窗看结果,右上窗显示变量值,右下窗显示作图和帮助:

R语言学习笔记内附实例及代码

R语言学习笔记内附实例及代码

R语言入门R是开源的统计绘图软件,也是一种脚本语言,有大量的程序包可以利用。

R中的向量、列表、数组、函数等都是对象,可以方便的查询和引用,并进行条件筛选。

R具有精确控制的绘图功能,生成的图可以另存为多种格式。

R编写函数无需声明变量的类型,能利用循环、条件语句,控制程序的流程。

R网络资源:R主页:R资源列表NCEASR Graphical Manual统计之都:QuikR丁国徽的R文档:R语言中文论坛一、用函数install.packages(),[直接输入就可以联网,第一次的话之后选择镜像,然后选择包下载即可]如果已经连接到互联网,在括号中输入要安装的程序包名称,选择镜像后,程序将自动下载并安装程序包。

例如:要安装picante包,在控制台中输入install.packages("picante")已经安装了?二. 安装本地zip包路径:Packages>install packages from local files选择本地磁盘上存储zip包的文件夹。

(文件,运行R的脚本,选择所在文档)三.调用程序包在控制台中输入如下命令library(“picnate”)程序包内的函数的用法与R内置的基本函数用法一样。

四.程序包内部都有哪些函数?分别有什么功能?查询程序包内容最常用的方法:1 菜单帮助>Html帮助;2 查看pdf帮助文档五.查看函数的帮助文件函数的默认值是什么?怎么使用?使用时需要注意什么问题?需要查询函数的帮助。

1 ?t.test 直接打开相关函数的说明和使用模板。

2 RGui>Help>Html help 同样的效果,同上3 apropos("t.test")合理使用T 检验,五种模式的T 检验4 help("t.test")帮助同1-25 help.search("t.test")有关T 检验的一切东西都可以查出来。

R语言-菜鸟级课程

R语言-菜鸟级课程

数 据 类 型
#? 1、如何创建一个矩阵 v<-matrix(1:12,nrow=3,byrow=T) #? 2、求矩阵的逆(需要方阵,且秩为行数) v2<-matrix(tan(1:16),nrow=4,byrow=T) qr(v2)$rank solve(v2) #? 3、求矩阵的特征值与特征向量(需要方阵) eigen(v2) ------------------------------------------------------#? 1、如何创建一个数据框 d<data.frame(ID=c(1,2,3,4,5),AGE=20:24,INCOME=c(2 3001,3232,10232,9923,1023)) #? 2、条件过滤及子集筛选 d2<-d[d$INCOME>10^4,c("ID","AGE")] d2<subset(d,d$INCOME>10^4,c("ID","AGE"),drop=TRU E) #? 3、数据框的拼接 d2<-cbind(d2,RNO=c("20","23"))
MeanDecreaseGini通过 基尼(Gini)指数计算每 个变量对分类树每个节点 上观测值的异质性的影响, 从而比较变量的重要性。 该值越大表示该变量的重 要性越大
如何用R分析数据、初步窥探数据
聚 类 分 析
Q&A
数据框(data.frame)
install.packages()
安 install.packages(c("xx","yy")) 装 R RCMD INSTALL "xxx.tar.gz" 包

R语言学习笔记2

R语言学习笔记2

R语言学习笔记2目录1.产生向量 (4)2.生成矩阵 (4)3.读数据 (5)4.round()函数 (5)5.散点图精细化设置 (6)5.1散点图 (6)5.2连线图 (6)5.3向日葵散点图 (8)5.4散点图集 (9)5.5图形窗口 (9)6.maps包的运用 (10)7.R语言的各种分布函数 (10)8.相关分析举例(以iris数据集为例) (10)9.一元线性回归分析 (11)10.多元线性回归 (13)10.1理论基础 (13)10.2逐步回归法优化模型举例 (14)10.3通过自变量与因变量关系的再编辑来优化模型 (16)11.回归诊断 (17)11.1正态分布检验 (17)11.2散点图目测检验 (18)11.3残差检验 (19)11.4多重共线性 (21)12.广义线性回归模型 (22)12.1Logistic回归:将分组变量转化为概率问题 (22) 12.2Logistic回归模型建立示例: (22)12.3对数法:y=a+b logx (23)12.4指数法:y = a e bx (24)12.5幂函数法:y=a x b (24)13.MINE方法建立回归模型 (24)14.关联规则的挖掘(以数据集Groceries为例) (25)14.1下载包arules (25)14.2函数asprior() (25)15.常见分类模型与算法 (25)15.1概述 (25)15.2线性判别法 (26)15.3距离判别法 (27)15.4贝叶斯分类器 (28)15.5决策树 (29)15.6支持向量机 (31)16.聚类 (31)16.1距离计算 (32)16.2层次/系统聚类法hclust()函数 (32)16.3动态聚类:K-means法(kmeans函数) (34)16.4 K中心聚类法 (34)16.5基于密度的方法:DBSCAN (35)17.主成分分析 (35)17.1简单主成分分析R语法示例(princomp函数) (35)17.2主成分分析与聚类的综合使用 (36)18.因子分析 (36)1.产生向量A[5]:显示A中的第5个元素;A[-5]:除了A中的第5个元素,其他元素都显示出来;A[1:5]:显示A中的第1个元素到第5个元素,共计5个数据;A[-(1:5)]:除了1-5个元素,其他元素都显示出来。

读书笔记(R语言)生信菜鸟团

读书笔记(R语言)生信菜鸟团

读书笔记(R语言)生信菜鸟团R与ASReml-R统计分析教程(林元震)中国林业出版社1-3章简单介绍了R的基本语法,然后第4章着重讲了各种统计方法,第5章讲R的绘图,最后一张讲ASReml-R这个包语法重点:1,install.packages(),library(),help(),example(),demo(),length() ,attribute(),class(),mode(),dim(),names(),str(),head(),tail()2,rep,seq,paste,array,matrix,data.frame,list,c(),factor(),3,缺失值处理(na.omit,na.rm=T),类型转换(as.numeric(),as.character(),as.factor(),as.logical())其中as.numeric()非常有用,在画图的时候经常需要加上,因为数据在处理的过程中经常被搞错成了字符串格式,而as.logical()可以进行分类,只有0,NA,NAN,NULL是FALSE4,排序,合并,分割成子集,数据整合重构(reshape2和plyr包) 可以先了解一些R语言自带的数据包(见附录1),然后试用一下aggregate函数,数据汇总,根据右边的因子来把左边的数据进行分割并处理一个函数5,控制语句,自编函数统计分析一、summary(), library(pastecs);options(digits=2);stat.desc(), libr ary(psych);describe()二、方差分析(analysis of variance,ANOVA)用来检验分组是否有显著差异1,单因素+重复,数据框,df=data.frame(yield,treat)fit=aov(yield~treat,data=df)可以用summary来查看这次分析结果summary(fit)用TukeyHSD(fit)进行多重比较,或者duncan.test(fit,”treat”,alpha=0.05)2,双因素无重复,数据框,df=data.frame(yield,treat1,treat2) fit=aov(yield~treat1+treat2,data=df)这时候做多重比较就比较复杂了,library(agricolae)Duncan.test(fit,”treat1”,alpha=0.5)Duncan.test(fit,”treat2”,alpha=0.5)3,双因素+重复,数据库首先要进行处理,把treat1和treat2合并成group来区分重复Df$group=sapply(df,function(x)paste(df$treat1,df$treat2,sep=””))然后fit=aov(yield~treat1+treat2+group,data=df)4,多元方差与此类似,不停的增加因子来区分变量及group三、随机分组的检验1,完全随机实验,等同于方差分析的单因素+重复(判断不同的处理是否有差异)2,单因素随机区组实验,等同于方差分析的双因素无重复,其中(区组这个因素是人为控制的差异,不需要检验,主要检验我们的不同的处理是否有差异)3,双因素随机区组实验,不等同于方差分析的双因素+重复,但是与之类似,其中重复这个变量与之前的group变量有点区别,这里是我们的区组,而不是treat1和treat2的简单组合,所以我们需要分析treat1和treat2处理间的差异,但同时不需要考虑区组的差异fit=aov(yield~treat1*treat2+block,data=df),如果treat1有2个水平,treat2有3个水平,那么之前的group应该是6个,但是我们的block是区组的个数,还是3个,数据是18个。

R语言入门操作(2)

R语言入门操作(2)

通过Lasso 来进⾏行行压缩估计和变量量选择2018年年9⽉月24⽇日⽥田甜参数估计与假设检验2019年年4⽉月28⽇日 ⽥田甜CONTENTS01 02 03Rstudio 参数估计假设检验01Rstudio•R,解释器器,IDE的关系R是⼀一种解释型语⾔言,不不需要编译的过程,代码的翻译和执⾏行行是同步的,R不不需要编译器器但需要解释器器图形界⾯面程序(GUI)除了了引⽤用了了解释器器到它主要窗⼝口中外,还实现了了编辑器器,图形展示和快捷按钮等功能,⼀一个GUI程序只需提供对R语⾔言常⽤用功能的图形化包装即可被称R的GUIGUI如果在⼀一个窗⼝口中包括了了解释器器、编辑器器和图形展示等功能则可被称为IDERstudio是⼀一个优秀的R IDE•选择⼀一个适合⾃自⼰己的IDE(Integrated Development Environment)•控制台•⼯工作空间和历史窗⼝口•画图和帮助窗⼝口2.1参数估计-点估计•矩估计因为不不同的分布有不不同的参数,所以在R 的基本包中并没有给出现成的函数,⼀一般要转化为⽅方程组求解:例例:设随机变量量X 服从[ , ]的均匀分布,现有n 个样本, ,估计两个参数解:⽤用样本⼀一阶矩(样本均值)估计总体均值,样本⼆二阶矩(样本⽅方差)估计总体⽅方差,即⽤用rootSolve 包中的函数multiroot()求解⽅方程组install.packages('rootSolve') # 安装rootSolve 程序包library(rootSolve) # 载⼊入包θ2x 1,...,x n θ1E (X )=θ1+θ22=¯x Var (X )=(θ2−θ1)212=1n n ∑i =1(x 1−¯x )2=S 2•输⼊入样本数据,计算样本⼀一阶矩和⼆二阶矩程序运⾏行行结果(采⽤用迭代的⽅方式,因此需要给出初始值)x = c(4, 5, 2, 9, 5, 1, 6, 4, 6, 2)mu = mean(x) # ⼀一阶矩var = sum((x - mean(x)) ^ 2) / 10 # ⼆二阶矩•构建⽅方程组model = function(theta, mu, var){c(F1 = theta[1] + theta[2] - 2 * mu,F2 = (theta[2] - theta[1]) ^ 2 / 12 - var)}•调⽤用函数进⾏行行求解(详细的参数说明可⽤用?multiroot命令来查看)multiroot(f=model,start=c(0,10),mu=mu,var=var)•法⼀一:写出似然函数,求偏导转换为⽅方程组,求解⽅方程组•例例:设X 服从正态分布 ,为来⾃自总体的⼀一组样本,⽤用极⼤大似然估计参数解:似然函数为:求偏导可得:N (μ,σ2)x 1,...,x n L (μ,σ2;x )=n ∏i =1f (x i ;μ,σ2)=(2πσ2)−n /2exp [−12σ2n∑i =1(x i −μ)2]∂lnL (μ,σ2;x )∂μ=−1σ2n ∑i =1(x i −μ)=0∂lnL (μ,σ2;x )∂σ2=−n 2σ2+12σ4n ∑i =1(x i −μ)2=0•输⼊入数据程序运⾏行行结果set.seed(1) # 设置随机种⼦子x = rnorm(10) # ⽣生成10个服从标准正态分布的随机数•构建⽅方程组model = function(e,x){n = length(x)c(F1 = sum(x - e[1]),F2 = - n + sum((x - e[1]) ^ 2) / e[2] ^ 2)}•调⽤用函数进⾏行行求解multiroot(f=model,start=c(0,1),x=x)•法⼆二:写出对数似然函数,调⽤用maxLik 包中的函数maxLik 。

R语言使用笔记_2012

R语言使用笔记_2012
2.4 数组运算 数组运算应尽量是 dim 相同; 在 dim 不同时,一般把相应位置上的数据进行运算,把短的向量重复使用,从而和长的向量 进行匹配。
2.5 矩阵运算 2.5.1 转置 t(A)
2.5.2 行列式 det()
2.5.3 向量内积
x%*%y
crossprod(x,y)======= t(x)%*%y
Example: x<-3 switch(x,2+2,mean(1:10),rnorm(4)) switch(2,2+2,mean(1:10),rnorm(4)) switch(6,2+2,mean(1:10),rnorm(4))
2.7.2 终止语句与空语句 break:终止循环,使程序跳到循环之外 空语句是 next,继续执行
2、多维数组 2.1 一维数组 dim() 例子: z<-1:12 dim(z)<-c(3,4)
结果: z
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12
2.2 多维数组 array() array(data = NA, dim = length(data), dimnames = NULL) data 是一个向量数据;dim 是数组各维的长度,默认为原向量长度,dimnames 是数组维名, 默认为空
2.5.5 矩阵乘法 和向量内积相同,只是要求 A*B 有相同的维数
2.5.6 生成对角阵和矩阵取对角运算 diag(v) 作用取决于变量。 v 是一个向量时,表示以 v 为对角元素的对角阵; v 是一个矩阵时,表示取矩阵的对角线上元素;
2.5.7 解线性方程组 求解 Ax=b 命令为 solve(A,b); 求矩阵 A 的逆,命令为 solve(A)

R语言学习过程各种笔记

R语言学习过程各种笔记

数据挖掘与数据分析的主要区别是什么?数据分析就是为了处理原有计算方法、统计方法,着重点就是数据、算法、统计、数值。

数据挖掘是从庞大的数据库中分析出有目标数据群,筛选出利于决策的有效信息简单来说就是数据分析是针对以往取得的成绩,比如说哪方面做得好,哪方面需要改进;数据挖掘就是通过以前的成绩预测未来的发展的趋势,并且为决策者提供建议。

读excel时可以先复制再运行data <- read.table("clipboard", header = T, sep = '\t')在R语言中,使用“=”和“<-”到底有什么不同?就是等号和箭头号有什么区别,是完全一样还是局部不同?R里通常用符号”<-”代替其它语言里的”=”来作赋值符号。

因为前者敲起来比等号要麻烦,且大部分情况下两者是等价的,所以通常就愉懒依旧用”=”来赋值。

但要切记两者在某些时候是有区别的。

字面上的解释,可以认为”<-”是赋值,”=”是传值。

在函数调用中,func(x=1)与func(x<-1)是有区别的,前者调用完后变量x不会被保留,而后者会在工作区里保留变量x=1。

再如length(x=seq(1,10))计算完成后x不会被保留,而length(x<-seq(1,10))计算完后你会在工作区里发现x这个变量。

矩阵知识:1_矩阵的生成2_矩阵的四则运算3_矩阵的矩阵运算4_矩阵的分解1_1将向量定义成数组向量只有定义了维数向量(dim属性)后才能被看作是数组.比如:> z=1:12;> dim(z)=c(3,4);> z;[,1] [,2] [,3] [,4][1,] 1 4 7 10[2,] 2 5 8 11[3,] 3 6 9 12注意:生成矩阵是按列排列的。

1_2用array ( )函数构造多维数组用法为:array(data=NA,dim=length(data),dimnames=NULL)参数描述:data:是一个向量数据。

R语言笔记完整版

R语言笔记完整版

R语⾔笔记完整版R语⾔与数据挖掘:公式;数据;⽅法R语⾔特征1. 对⼤⼩写敏感2. 通常,数字,字母,. 和 _都是允许的(在⼀些国家还包括重⾳字母)。

不过,⼀个命名必须以 . 或者字母开头,并且如果以 . 开头,第⼆个字符不允许是数字。

3. 基本命令要么是表达式(expressions)要么就是赋值(assignments)。

4. 命令可以被 (;)隔开,或者另起⼀⾏。

5. 基本命令可以通过⼤括弧({和}) 放在⼀起构成⼀个复合表达式(compound expression)。

6. ⼀⾏中,从井号(#)开始到句⼦收尾之间的语句就是是注释。

7. R是动态类型、强类型的语⾔。

8. R的基本数据类型有数值型(numeric)、字符型(character)、复数型(complex)和逻辑型(logical),对象类型有向量、因⼦、数组、矩阵、数据框、列表、时间序列。

基础指令程序辅助性操作:运⾏q()——退出R程序tab——⾃动补全ctrl+L——清空consoleESC——中断当前计算调试查错browser() 和debug()——设置断点进⾏,运⾏到此可以进⾏浏览查看(具体调试看browser()帮助⽂档(c,n,Q))stop('your message here.')——输⼊参数不正确时,停⽌程序执⾏cat()——查看变量?帮助help(solve) 和 ?solve 等同solve——检索所有与solve相关的信息help("[[") 对于特殊含义字符,加上双引号或者单引号变成字符串,也适⽤于有语法涵义的关键字 if,for 和 functionhelp(package="rpart")——查看某个包help.start()——得到html格式帮助help.search()——允许以任何⽅式(话题)搜索帮助⽂档example(topic)——查看某个帮助主题⽰例apropos("keyword")——查找关键词keyword相关的函数RSiteSearch("onlinekey", restrict=fuction)——⽤来搜索邮件列表⽂档、R⼿册和R帮助页⾯中的关键词或短语(互联⽹)RSiteSearch('neural networks')准备⽂件⽬录设置setwd(<dir>)——设置⼯作⽂件⽬录getwd()——获取当前⼯作⽂件⽬录list.files()——查看当前⽂件⽬录中的⽂件加载资源search()——通过search()函数,可以查看到R启动时默认加载7个核⼼包。

r语言 日记法

r语言 日记法

r语言日记法篇一哎呀,今天可真是让我对 R 语言和日记法有了一堆想法!说起来,这 R 语言,也许对有些人来说就是小菜一碟,但对我这种菜鸟,简直就是个超级大难题!我觉得吧,它就像个神秘的魔法盒子,你不知道打开后会蹦出啥稀奇古怪的东西。

我整天对着那些代码抓耳挠腮,心里想着:“这到底是啥玩意儿啊?”今天学 R 语言的时候,我感觉自己就像个在迷宫里乱转的小老鼠,找不到出口。

那些函数、数据框啥的,一个个都好像在嘲笑我:“哈哈,你搞不定我们!”也许是我太笨了,可我就不信这个邪!再说说这日记法,我一开始觉得这能有啥用?不就是每天写点流水账嘛。

但是后来我发现,嘿,还真不是那么简单!写日记的时候,就好像在跟自己的内心聊天,把那些藏在心底的小秘密、小情绪都倒出来。

有一次,我心情特别差,可能是考试没考好,也许是跟朋友闹别扭了。

然后我就在日记里一通发泄,写着写着,我自己都觉得好笑,这点破事至于这么难受吗?这日记法啊,说不定还真有点神奇的魔力。

我在想,要是能把 R 语言和日记法结合起来,会咋样呢?是不是能把我每天学习 R 语言的痛苦和快乐都记录下来,然后分析分析,找到突破的办法?不过这也只是我的瞎想,谁知道行不行呢?哎呀,不管咋样,这学习的路还长着呢,我可得加油啦!篇二今天又是被 R 语言和日记法折磨的一天,我都快疯了!你说这 R 语言,它咋就那么难搞呢?我觉得它就像个脾气古怪的老头,一点都不友好。

我辛辛苦苦地去理解那些复杂的语法,可它却总是跟我作对,让我出错出错再出错!我真想大声问一句:“R 语言,你是不是故意为难我?”就拿今天做的那个练习题来说,我明明觉得自己的思路是对的,可结果就是不对。

我反复检查,眼睛都快看花了,还是找不出问题所在。

难道是我中了什么魔咒?也许是我还没掌握到 R 语言的精髓,可这精髓到底藏在哪里呢?再讲讲日记法,本来我觉得这应该是个轻松的事儿,不就是写写自己的心情嘛。

可当我真的开始写的时候,我却发现自己不知道从哪儿下笔。

R语言笔记

R语言笔记

R语言笔记第一章R语言介绍1.将结果输出到文件sink("practice.txt") practice.txt需要在工作空间中,sink()加在程序前面,并且会一直生效> a第二章创建数据集(read.xl包)1.指定实例标识符a<- data.frame(ID, col1, col2, col3...., /doc/ad13408624.html,s=ID) 方便区分数据的行,比如ID之类2.读取txtread.table("D:/学习/R语言文件/practice.txt",sep="") txt分隔符为空3.读取csvread.table("D:/学习/R语言文件/餐饮.csv",sep=",") csv分隔符为逗号4.读取中文excellibrary(readxl, quietly=TRUE)a <- read_excel("D:/学习/R语言文件/餐饮(天善).xlsx") 这样读不会出现UTF-8乱码5.edit和fix区别a<-edit(a) edit需要赋值修改才会生效fix(a)fix不用赋值第三章图形初级1.图形的输出bmp("mtcars.bmp") mtcars.BMP文件需要先创建好plot(mtcars$mpg,mtcars$wt,type="b")dev.off()2.图形参数初始化opar<-par(no.readonly=TRUE)布局par(fig=c(0,0.5,0.1,0.6)) 水平0-0.5竖直0.1-0.6符号par(pch=2)线条par(lty=2)画图attach(iris)plot(Sepal.Length,Sepal.Width,col=c("red","blue"),main="1", xlab="2")辅助线abline(h=c(2,2.5,3),v=c(4,5,6))图例legend("topleft",title="5",pch=2,col=c("red","blue"),c("Sepal.Len gth","Sepal.Width "))detach(iris)结束par(opar)第四章基本数据管理(car包,plyr包)1.在原变量基础上创建新变量最好的方法a<-iristransform(a,sum=Sepal.Length+Sepal.Width)2.变量的重编码car包x<-c(10:100)recode(x,"lo:60='C';61:80='B';81-hi='A';else='NULL'")3.变量的重命名1.fix 不需要赋值2.plyr包rename(a,c("Sepal.Length"="b",Sepal.Width="c"))4.重编码为缺失值用2.5.排除缺失值na.rm=TRUE选项newdata<-na.omit(dataframe)6.日期值将字符串格式转换成日期格式(计算用)as.Date(c,"%d/%m/%Y") 红字为c的格式,不是输出格式注意Date的D为大写指定输出格式或者提取部分日期today<-Sys.Date()format(today,format="%d/%y/%m")format(today,format="%d")今天和现在Sys.Date()date()7.类型转换a<-as.character(a) 日期值相当于数字,不能用字符处理函数,需要先转换其他类型转换和判断is.numeric as.numeric下略8.数据排序attach(a)a<-a[order(-b,c),] 按b降序,再按a升序,注意数据框后面是中括号和逗号detach9.数据合并横向合并有公共列total<-merge(a,b,by=c("ID","SEX")无公共列total<-cbind(a,b) 行数相同并且排列相同纵向合并total<-rbind(a,b) 列要相同不需要顺序相同列数不相同时可以删除多的或者像少的里添加列赋值N10.取子集1.x<-data.frame[1:5,2:6] 取1到5行和2到6列2.最简单的方法,可以同时选择变量和观测s<-subset(iris,Petal.Length>1&Petal.Length<5,select=c(Sepal.Length,Sepa l.Width))数据框变量条件筛选行选择列11.抽样mysample<- iris [ sample (1:nrow(iris) , 10 , replace=TRUE),] 注意[ ] 和最后的逗号12.查看行名和列名names(iris)/doc/ad13408624.html,s(iris)第五章高级数据处理(reshape2包)1.将函数应用于数据框apply(data.frame,1或者2,fun) 1为对行应用fun,2为对列2.控制流循环for(var in seq) statementwhile(cond) statement条件if(cond) statementif(cond) statement1 else statementswitch3.数据折叠和分组aggregate(mtcars,by=list(mtcars$cyl,mtcars$gear),mean)将mtcars按照cyl和gear分组,并计算平均数4.reshape2包融合a<-melt(a,id=c("var1","var2".......)) 将数据整合重铸b<-dcast(a,rowvar1+rowvar2+...~colvar1+colvar2+... , fun) 选取想要的观测和变量第六章基本图形(vcd包,plotrix包,sm包,vioplot包)1.条形图作用对象是频数表table()a<-table(mtcars$mpg)数值条形图barplot(a)水平条形图barplot(a,horiz=TRUE)b<-mtcars[1:5,c(2,10)]分组条形图barplot(table(b),beside=TRUE)堆砌条形图barplot(table(b),beside=FALSE)脊状图(vcd包)特殊的堆砌条形图(高度是比例)spine(table(b))2.饼图(慎用)要用就用玫瑰图或者扇形图饼图pie (c(1,2,3,4),labels=c("a","b","c","d"))扇形图(plotrix包)fan.plot(c(1,2,3,4),labels=c("a","b","c","d"))3.直方图hist(mtcars$mpg,breaks=12,freq=FALSE) 概率密度hist(mtcars$mpg,breaks=12,freq=TRUE ) 频数4.核密度图(连续的概率密度直方图)画一组plot(density(mtcars$mpg))画多组sm包/doc/ad13408624.html,pare(mtcars$mpg,mtcar s$cyl)5.箱线图单个boxplot(mtcars$mpg)多组boxplot(mpg~cyl,data=mtcars)多组交叉比较cyl.f<-factor(mtcars$cyl)am.f<-factor(mtcars$am)boxplot(mpg~cyl.f*am.f,data=mtcars,varwidth=TRUE)小提琴图vioplot包x1<-mtcars$mpg[mtcars$cyl==4]x2<-mtcars$mpg[mtcars$cyl==6]x3<-mtcars$mpg[mtcars$cyl==8]vioplot(x1,x2,x3)6.点图普通点图dotchart(mtcars$mpg,labels=/doc/ad13408624 .html,s(mtcars))排序点图x<-mtcars[order(mtcars$mpg),] 1排序x$cyl<-factor(x$cyl) 2转因子dotchart(x$mpg,labels=/doc/ad13408624. html,s(x)) 3画图第七章基本统计分析(Hmisc包,psych 包,doBy包,gmodels 包,ggm包,MASS包)1.描述性统计分析summary(mtcars)sapply(mtcars,fivenum)Hmisc包describe(mtcars)psych包describe(mtcars)2分组描述性统计分析doBy包summaryBy(mpg+hp+wt~cyl+am,data=mtcars) 后面还可以加函数3.列联表一维table(mtcars$cyl)prop.table(table(mtcars$cyl)) 百分比列联表作用对象是table,不是向量prop.table(table(mtcars$cyl))*100二维table(mtcars$cyl,/doc/ad13408624.html,s(mtcar s)) 二维,前面是行,后面是列xtabs(~mtcars$cyl+mtcars$am) 和↑效果一样gmodels包CrossTable(mtcars$cyl,mtcars$am) 没别的就是好看三维table(mtcars$cyl,mtcars$am,mtcars$gear)xtabs(~mtcars$cyl+mtcars$am+mtcars$gear)ftable(xtabs(~mtcars$cyl+mtcars$am+mtcars$gear))4.独立性检验(针对类别变量,基于列联表)卡方检验chisq.test(table(mtcars$cyl,mtcars$gear)) 原假设:行和列独立Fisher检验fisher.test(table(Arthritis$Improved,Arthritis$Treatment)) 原假设:边界固定列联表行和列独立cochran-mantle-haenszel检验mantelhaen.test(xtabs(~Improved+Treatment+Sex,data=Art hritis))原假设:两个名义变量在第三个变量每一层中独立5.相关(针对数值变量,基于协方差矩阵)协方差矩阵cov<-cov(mtcars)相关矩阵cor(mtcars,use=控制缺失值,method=三种方法)偏相关ggm包pcor(c(1,2,3,4,5,6),cov) 控制3,4,5,6之后,1,2的偏相关关系6.相关关系检验cor.test(mtcars$mpg,mtcars$wt,method="pearson") person spearmankendall第八章回归(car包,leaps包)1.建立模型fit<-lm(mpg~wt,data=mtcars) 多元线性回归要先检查相关性,画图或者cor 2.展示模型输入模型名称显示参数summary 详细fitted 预测predict 预测confint 提供置信区间有点用plot 综合诊断图par(mfrow=c(2,2))plot(fit)3诊断模型car包正态性(图像应该是45度支线)qqPlot(fit,labels=/doc/ad13408624.html,s( mtcars),id.method="identify")带置信区间的qq图可以交互线性(图像应该是支线)crPlots(fit)同方差性(水平点随机分布在两侧)ncvTest(fit) 检验误差方差是否不变,零假设:误差方差不变spreadLevelPlot(fit) 还会给出一个建议幂次,接近1不需要换多重共线性vif(fit) sqrt(vif(fit))>2 就说明有多重共线性异常值的观测influencePlot(fit) 离群点y>2 或y<-2高杠杆x>0.2或x<-0.2强影响点圆圈大4 改进措施1.删除观测点dplyr包2.变量变换car包summary(powerTransform(mtcars$wt)) 注意作用对象是数据框3.删除多重共线性变量5模型比较anova(fit1,fit2) 需要一个模型完全包含另一个模型的变量AIC(fit1,fit2)6.选择最佳模型全子集回归leaps包fit1<-regsubsets(mpg~wt+disp+hp+drat+qsec,data=mtcars) plot(fit1,scale="adjr2") adjr2值最高的模型最好相当于r方第九章方差分析第十章功效分析第十一章中级绘图(car包,hexbin 包,corrgram包,vcd包)1.散点图attach(mtcars)plot(mpg,wt)abline(lm(wt~mpg),col="red",lty=2,lwd=2) 添加拟合直线变量要反向lines(lowess(mpg,wt)) 添加拟合曲线car包scatterplot(mpg~wt|cyl,legendplot=TRUE,id.method="ident ify",labels=/doc/ad13408624.html,s( mtcars),bo xplot="xy") 可以分组并交互的散点图,还可以加箱线图2.散点图矩阵pairs(~mpg+wt+disp+drat,data=mtcars)pairs(mtcars)car包scatterplotMatrix(mtcars,spread=FALSE,smoother.args=list(l ty=2))scatterplotMatrix(~mpg+wt+disp+drat,data=mtcars,spread=FA LSE,smoother.args=li st(lty=2))格式与自带函数基本相同3.高密度散点图hexbin包bin<-hexbin(iris$Sepal.Length,iris$Sepal.Width,xbin=50) xbin是指点的大小plot(bin)4.旋转三维散点图car包attach(mtcars)scatter3d(wt,mpg,disp)5.气泡图attach(mtcars)symbols(mpg,wt,circle=sqrt(disp/pi),inches=0.3)6.折线图plot(x,y,type="") p实心点,l直线,o实心点+直线,b虚心点+直线,c不画点的线,s和S阶梯式,h垂线,n建立坐标轴用7.相关图corrgram包corrgram(mtcars,order=TRUE,lower.panel=panel.shade,upp er.panel=panel.pie,text.panel=panel.txt,diag.panel=panel.minmax)8.马赛克图(三个以上类别变量)vcd包mosaic(~Class+Sex+Age+Survived,data=Titanic,shade=TR UE,legend=TRUE)根据残差上色残差图例第十二章重抽样和自住法第十三章广义线性模型1.logistic回归(Y为二值型变量)fit<-glm(y~x1+x2+x3+x4+...,data=data.frame,family=binomial()) 用summary(fit)看各个变量显著性,筛选变量用coef(fit)解释用测试集预测testdata$prob<-predict(fit,newdata=testdata,type="response")过度离势deviance(fit)/df.residual(fit) 残差偏差/残差自由度如比1大得多,则过度离势2.泊松回归(Y为计数型变量)fit<-glm(y~x1+x2+x3+x4+...,data=data.frame,family=poisson()) 解释,过度离势同上;预测不明第十四章主成分分析和因子分析(psych包)1.主成分分析psych包主成分个数选择fa.parallel(USJudgeRatings[,-1],fa="pc",n.iter=100,show.legend=FALSE)abline(h=1) 选择标准1.曲线>1 2.曲线>辅助线3最大拐点计算主成分pc<-principal(USJudgeRatings[,-1],nfactors=1)2.因子分析因子个数选择fa.parallel(USJudgeRatings[,-1],fa="fa",n.iter=100,show.legend=FALSE)abline(h=0) 选择标准1.曲线>0 2.曲线>辅助线3最大拐点提取因子fa<-fa(USJudgeRatings[,-1],fa="pa",nfactors=2) 方法用pa或者ml第十五章时间序列第十六章聚类分析(NbClust包,cluster包)1.分组聚类距离法d<-dist(scale(mtcars))fit<-hclust(d,method="average")plot(fit)缺点:无法选择适当的聚类个数选择聚类个数方法NbClust包选择聚类个数a<-read.table("D:/学习/R语言文件/nutrient.txt",sep="")a<-scale(a)devAskNewPage(ask=TRUE)fit<-NbClust(a,distance="euclidean",min.nc=2,max.nc=15,method=" average") table(fit$Best.n[1,])barplot(table(fit$Best.n[1,]))画出聚类图fit1<-cutree(fit,k=5)fit1 可以查看各个聚类数量aggregate(a,by=list(cluster=fit1),mean) 查看各个组统计量plot(fit1)2.划分聚类kmeans首先删除非数值型变量然后对数据scale然后用自定义函数wassplotnutrient<-read.table("D:/学习/R语言文件/nutrient.txt",sep="")scaled<-scale(nutrient) 中心化fit<-NbClust(scaled,min.nc=2,max.nc=15,method="kmeans") table(fit$Best.nc[1,])barplot(table(fit$Best.nc[1,])) 最高的是聚类个数fit.kmeans<-kmeans(scaled,3,nstart=25)cluster1<-as.data.frame(fit.kmeans$cluster) 可以先str(fit)看下结构total<-cbind(nutrient,cluster1) 必须转化成数据框才可以和原数据合并围绕中心点的划分(PAM)cluster包选择聚类个数用kmeansfit.pam<-pam(scaled,k=3,stand=TRUE)str(fit.pam) 看下结构找聚类变量cluster2<-as.data.frame(fit.pam$clustering) 转化为数据框total<-cbind(nutrient,cluster2)第十七章分类1. 逻辑回归(广义线性模型)(rpart包,rpart.plot 包,party包,randomForest包,e1071包)缺点:logistics回归只能对二值型变量分类,类别变量多于2个不能使用2. 经典决策树rpart包,rpart.plot包set.seed(1234)tree1<-rpart(Species~.,data=iris,method="class")plotcp(tree1) #选择虚线下最左侧的tree1$cptable #图看不出来时候用这个看#在最后一行的xerror±3+xstd范围内找xerror tree1.prune<-prune(tree1,cp=0.01) #cp值由上一行代码得出prp(tree1.prune,type=2,extra=104) #type=2显示标签extra=104显示占比#判断正确率tree1.predict<-predict(tree1.prune,iris,type="class")table(tree1.predict,iris$Species,dnn=c("predict","actual"))partykit包可以用条件树的方法画经典树plot(as.party(tree1))3. 条件决策树party包tree2<-ctree(Species~.,data=iris)plot(tree2)tree2.predict<-predict(tree2,iris,type="response")table(tree2.predict,iris$Species,dnn=c("predict","actual"))4. 随机森林randomForest包fit.forest<-randomForest(Species~.,data=iris,na.action=na.omit,importanc e=TRUE) fit.forest 直接给出正确/错误列联表plot(fit.forest) 画出错误/森林颗数图importance(fit.forest,type=2) 给出变量重要性predict.forest<-predict(fit.forest,iris) 预测table(predict.forest,iris$Species,dnn=c("predict","actual"))5. 支持向量机svm.fit<-svm(Species~.,data=iris)svm.fitsvm.predict<-predict(svm.fit,iris)table(svm.predict,iris$Species,dnn=c("predict","actual"))第十八章处理缺失数据(VIM包,mice包)1.识别缺失值is.na(iris) 数据大看着乱complete.cases(iris) 数据量上千会看着乱mice包md.pattern(a) 列表查看,还可以VIM包aggr(a) 画出图表,对大数据量直观,大体了解缺失值2.行删除new<-b[complete.cases(b),] 删除所有有缺失值的行选择聚类个数。

R语言学习笔记(入门知识)

R语言学习笔记(入门知识)

R语言学习笔记(入门知识)R免费使用;统计工具;# 注释,行注释块注释:anything="这是注释的内容"常用R语言编辑器:Rsutdio,Tinn-R,Eclipse+StatET;中文会有乱码帮助:?,help; ?boxplot, help(boxplot),help("[[")运行R文件:source('abc.R')加载包:library(ggplot2)安装包:install.packages()退出R:q()设置工作目录:setwd("E:\\XXX\\yyy\\")清空内存:rm(list=ls(all=TRUE))对数:log自然对数;log10;标量;赋值:<-,=变量取名可以用.c() 向量; Win[1], Win[1:5], Win[-2],下标从1开始;c()可以连接多个标量;也可连接多个向量;NA变量取名大写字母开头na.rm=TRUErep(); rep(1:4, each=8)seq(); seq(from=1,to=4,by=1)cbind()rbind()matrix(); matrix(nrow=8,ncol=4); Z[,1], Z[1:8,1], Z[2,], Z[,-3], Z[,c(1,3,4)]dim(Z)nrow(); ncol();vector(length=8)colnames()rownames()as.matrix;as.data.frame,is.matrix, is.data.frame,t()XX<-data.frame(AA=AA,BB=BB); XX$AA; XX[,1];str()names()list(X1=x1,X2=x2)is.na()!is.na()read.table() 生成了数据框scan() 数值型比较快write.table() #可以用于保存向量,矩阵,data.frame.factorattach(); detach();unique()筛选子集:Sel<-Squid$Sex==1; SquidM<-Squid[Sel,]; Squid[Squid$Sex==1,];|, &, !=, ==order() # T o sort a data frame in R, use the order( ) function.对向量排序: sort(x, decreasing = FALSE, ...)merge()as.factor(); as.numeric(); as.character();factor(Squid$Sex, levels=c(1,2), labels=c("M","F"))tapply(); tapply(X=Veg$R,INDEX=Veg$Transect, FUN=mean) 根据第二个变量的不同水平对第一个变量进行求平均值运算;mean,min,max,sd,length,lapply() 多个变量;输出list;lapply(x,FUN=mean)sapply() 多个变量;输出vector; sapply(x,FUN=mean)summary() 输出最小值,第一个四分位数,中位数,平均值,第三个四分位数,最大值;table() 计算列联表;一个变量或两个变量;plot(); plot(x=XXX,y=YYY); plot(y~x,data=Veg);plot(x=,y=,xlab=,ylab=,main=,xlim=,ylim=),pch=1..25;warnings()col 颜色; cel 尺寸;cex尺寸;lines()划线; loess()loess平滑;fitted()拟合值;lwd线宽度,lty线类型;jpeg(file="xxxx.jpg"); dev.off();paste(); paste0();for(i in 1:27) {}for(var in seq) exprwhile(cond) exprrepeat exprbreaknextif(cond) exprif(cond) cons.expr else alt.exprifelse(choice=="Zeros",expr1,expr2);自定义函数function_name<-function(params){do somethingexpr -- return values;}colSums(); rowSums();函数参数默认值function_name<-function(params, xxx="YYY"){do somethingexpr -- return values;}《R语言初学者指南》ls(); ls(pat = "m");ls(pat = "^m")help("bs", try.all.packages = TRUE); help("bs", package = "splines")help.search("tree", rebuild = TRUE))对象的类型和长度可以分别通过函数mode和length得到\", \'函数scan比read.table要更加灵活,它们的区别之一是前者可以指定变量的类型mydata <- scan("data.dat", what = list("", 0, 0)) 读取了文件data.dat中三个变量,第一个是字符型变量,后两个是数值型变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

R语言笔记
1.读入数据文件内容,并显示在屏幕上
•显示数据变量名
•names(d);
•显示行数、列数
•nrow(d), ncol(d)
•设置输出有效位数
•options(digits=4)
>abc<-read.csv(file="C:/Users/user/Desktop/MEdata.csv",he ader=T)
>abc
X TAX GDP EXP IE
1 1978 5.1928 36.056 11.2209 3.550
2 1979 5.3782 40.926 12.8179 4.546
3 1980 5.7170 45.929 12.2883 5.700
4 1981 6.2989 50.088 11.3841 7.353
5 1982 7.0002 55.900 12.2998 7.713
6 1983 7.7559 62.162 14.0952 8.601
7 1984 9.4735 73.627 17.0102 12.010
8 1985 20.4079 90.767 20.0425 20.667
9 1986 20.9073 105.085 22.0491 25.804
10 1987 21.4036 122.774 22.6218 30.842
11 1988 23.9047 153.886 24.9121 38.218
12 1989 27.2740 173.113 28.2378 41.560
13 1990 28.2186 193.478 30.8359 55.601
14 1991 29.9017 225.774 33.8662 72.258
15 1992 32.9691 275.652 37.4220 91.196
16 1993 42.5530 369.381 46.4230 112.710
17 1994 51.2688 502.174 57.9262 203.819
18 1995 60.3804 632.169 68.2372 234.999
19 1996 69.0982 741.636 79.3755 241.338
20 1997 82.3404 816.585 92.3356 269.672
21 1998 92.6280 865.316 107.9818 268.497
22 1999 106.8258 911.250 131.8767 298.962
23 2000 125.8151 987.490 158.8650 392.732
24 2001 153.0138 1090.280 189.0258 421.836
25 2002 176.3645 1204.756 220.5315 513.782
26 2003 200.1731 1366.134 246.4995 704.835
27 2004 241.6568 1609.566 284.8689 955.391
28 2005 287.7854 1874.234 339.3028 1169.218
29 2006 348.0435 2227.125 404.2273 1409.740
30 2007 456.2197 2665.992 497.8135 1668.637
31 2008 542.2379 3159.746 625.9266 1799.215
32 2009 595.2159 3487.751 762.9993 1506.481
33 2010 732.1079 4028.165 898.7416 2017.222
34 2011 897.3839 4726.192 1092.4779 2364.020
35 2012 1006.1428 5293.992 1259.5297 2441.602
36 2013 1105.3070 5866.730 1402.1210 2582.529 RS COM INV DEP
1 15.586 17.5910 8.008 2.1060
2 18.000 20.1150 8.565 2.8100
3 21.400 23.3120 9.109 3.9580
4 23.500 26.2790 9.610 5.2370
5 25.700 29.0290 12.304 6.7540
6 28.494 32.3110 14.301 8.9250
7 33.764 37.4200 18.329 12.1470
8 43.050 46.8740 25.432 16.2260
9 49.500 53.0210 31.206 22.3850
10 58.200 61.2610 37.917 30.8140
11 74.400 78.6810 47.538 38.2220
12 81.014 88.1260 44.104 51.9640
13 83.001 94.5090 45.170 71.1960
14 94.156 107.3060 55.945 92.4490
15 109.937 130.0010 80.801 117.5730
16 142.704 164.1210 130.723 152.0350
17 186.229 218.4420 170.421 215.1880
18 236.138 283.6970 200.193 296.6230
19 283.602 339.5590 229.135 385.2080
20 312.529 369.2150 249.411 462.7980
21 333.781 392.2930 284.062 534.0750
22 356.479 419.2040 298.547 596.2180
23 391.057 458.5460 329.177 643.3240
24 430.554 494.3590 372.135 737.6240
25 481.359 530.5660 434.999 869.1065
26 525.163 576.4980 555.666 1036.1731
27 595.010 652.1850 704.774 1195.5539
28 671.766 729.5870 887.736 1410.5099
29 791.452 825.7545 1099.982 1615.8730
30 935.716 963.3250 1373.239 1725.3419
31 1148.301 1116.7040 1728.284 2178.8535
32 1326.784 1235.8462 2245.988 2607.7166
33 1569.984 1407.5865 2516.838 3033.0249
34 1839.186 1689.5663 3114.851 3436.3589
35 2103.070 1905.8460 3746.947 3995.5104
36 2378.099 2121.8750 4470.744 4607.8504
>names(abc)
[1] "X" "TAX" "GDP" "EXP" "IE" "RS" "COM"
[8] "INV" "DEP"
>nrow(abc)
[1] 36
>ncol(abc)
[1] 9
>options(digits=4)
• 2.提取第一列(TAX)数据中的1993-2013部分,为x
•显示数据x
•使用散点图绘制该x数据
> x<-abc[16:36,"TAX"]
>plot(x)
• 3.将x转换为时间序列数据
•y<-ts(x,start=1993)
•绘制时间序列
•plot(y)
> y<-ts(x,start=1993)
> plot(y)
• 4.整个数据集进行时间序列化
•进行多变量序列绘图
•ts.plot(td)
•进行多变量序列的log绘图
•ts.plot(log(td))
•进行单变量序列绘图
•plot.ts(td)
•>ts.plot(y)
•>ts.plot(log(y))
•>plot.ts(y)
• 5.变量解析绑定
•attach(abc)
•解绑
•detach(abc)
绑定之后,可用表头名作为变量直接操作,以下操作均是在绑定状态下进行的
• 6.绘制两变量的散点图


•plot(GDP,TAX)
•plot(TAX~GDP)
•7.拟合线性回归模型
•> LM<-lm(TAX~GDP, data=abc)
•> LM

•Call:
•lm(formula = TAX ~ GDP, data = abc)

•Coefficients:
•(Intercept) GDP
• -28.007 0.187
>abline(-28.007,0l.187)。

相关文档
最新文档