R语言入门实战(一)

#如何生成矩阵并将行列命名Creating Matrix

cells    <- c(175,144,185,128)

rnames   <- c("张三", "李四")

cnames   <- c("身高", "体重")

mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE,

                   dimnames=list(rnames, cnames))

mymatrix

#如何生成数组 Creating an array 2*3*4

dim1 <- c("A1", "A2")

dim2 <- c("B1", "B2", "B3")

dim3 <- c("C1", "C2", "C3", "C4")

z <- array(1:24, c(2,3,4), dimnames=list(dim1, dim2, dim3))

z

#如何创建一个数据框 Creating a dataframe

patientID <- c(1, 2, 3, 4)#病人ID

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

#选择dataframe里的某一行某一列Specifying elements of a dataframe

patientdata[1:2]#选取向量的第一个,第二个

patientdata[,1:2]#选取矩阵的第一列,第二列

patientdata[c("diabetes","status")]#列column

patientdata$age #$选取

patientdata[2,]

mtcars#汽车数据集

plot(mtcars$mpg,mtcars$disp)#散点图作图(x轴,y轴)

attach(mtcars)#把数据集加载到当前目录上来

plot(mpg,disp)

#using factors使用因素/因子

patientID <- c(1, 2, 3, 4)

age <- c(25, 34, 28, 52)

diabetes <- c("Type1", "Type2", "Type1", "Type1")

status <- c("Poor", "Improved", "Excellent", "Poor")

diabetes <-factor(diabetes)

diabetes

status <-factor(status ,order=TRUE)#order给出一个排序

status

patientdata <- data.frame(patientID, age, diabetes, status)

patientdata

summary(patientdata )#对数据框、矩阵进行summary

#1st Qu 1/4位置上,3rd Qu 3/4位置上,median中位数,mean平均数

#creating a list列表

#列表选取用两个[[ ]]

g<-"MY First List"

h<-c(25,26,18,39)

j<-matrix(1:10,nrow=5)#生成矩阵

k<-c("one","two","three")

mylist<-list(title=g,ages=h,j,k)#生成列表

mylist

mylist[ ]#显示对象

mylist[[ ]]#显示整个部分

mydata<-read.table(header=TRUE,text=mydatatxt)#读取文本数据txt

#作图(程序包ggplot 2)

install.packages("ggplot")#安装程序包

par(ask=TRUE)

opar<-par(no.readonly=TRUE)#允许对参数进行修改

#回归方程

attach(mtcars)

plot(wt,wpg)

abline(lm(mpg~wt))#回归方程用直线表示出来

title("Regression of MPG")#给图加个解释

detach(mtcars)

#描述病人对药物A相应程度

dose<-c(20,30,40,45,60)

drugA<-c(16,20,27,40,60)

drugB<-c(15,18,25,31,40)

plot(dose,drugA,type="b")

#用实心三角不是空心圆圈做图

opar<-par(no.readonly=TRUE)#允许对参数进行修改,一般情况下都要加入

par(lty=2,pch=17)#par()改变某些参数#lty是线条类型#pch是绘制点使用的符号

plot(dose,drugA,type="b")#type="b"用线把点连起来

par(opar)#还原成默认值

attach(mtcars)#把数据加载到当前的目录中#相当于plot(mtcars$wt,mtcars$mpg)

plot(wt,mpg)

abline(lm(mpg~wt))#回归方程

title("Regression og MPG on weight")#设置标题

detach(mtcars)

plot(dose,drugA,type="b",lty=3,lwd=3,pch=15,cex=2)

#lwd为线条宽度#lty是线条类型#pch是绘制点使用的符号#cex为符号大小

par(opar)#还原成默认的参数设置

library(RColorBrewer)#引用软件包

n<-7

mycolors<-brewer.pal(n,"Set1")#生成7个调色板颜色#Set1是R中存在的调色板组合

barplot(rep(1,n),col=mycolors)

#barplot条形图#1表示条形图的高度#n为7个条形图

mycolors<-brewer.pal(n,green)

n<-10#定义n=10

mycolors<-rainbow(n)#彩虹中挑10个颜色

pie(rep(1,n),labels=mycolors,col=mycolors)#pie饼图

mygrays<-gray(0:n/n)

#把彩色的图变成灰色图0:n再除以10,即0,0.1...0.9,1

pie(rep(1,n),labels=mygrays,col=mygrays)

#rep重复即把1重复10次#col为color即灰色系的10颜色

#使用图形参数控制图形外观

dose<-c(20,30,40,45,60)

drugA<-c(16,20,27,40,60)

drugB<-c(15,18,25,31,40)

opar<-par(no.readonly=TRUE)

par(pin=ca(2,3))#作图的尺寸即宽度是2高度是3

par(lwd=2,cex=1.5)

par(cex.axis=.75,font.axis=3)

plot(dose,drugA,type="b",pch=19,lty=2,col="red")

par(opar)#恢复默认值

plot(dose,drugB,type="b",pch=23,lty=6,col="blue",bg="green")

#bg点里的背景颜色

par(opar)

#添加文本、自定义坐标轴

plot(dose,drugA,type="b",

     col="red",lty=2,pch=2,lwd=2,

     main = "Clinical Trials for DrugA",

     sub = "This is hypothetical data",

     xlab = "Dosage",ylab = "Drug Response",

     xlim = c(0,60),ylim = c(0,70))

#自定义坐标轴

x<-c(1:10)

y<-x

z<-10/x

opar<-par(no.readonly = TRUE)#必须要加,才能对参数进行设置

par(mar=c(5,4,4,8)+0.1)#mar边界大小#par修改图像参数

plot(x,y,type="b",pch=21,col="red",yaxt="n",lty=3,ann=FALSE)#yaxt禁用y轴

lines(x,z,type="b",pch=22,col="blue",lty=2)#添加一条线

axis(2,at=x,labels=x,col.axis="red",las=2)#axis坐标轴刻度#las标签垂直于坐标轴

axis(4,at=z,labels=round(z,digits=2),

     col.axis="blue",las=2,cex.axis=0.7,tck=-0.01)

#round对z四舍五入取小数点后两位#cex符号大小#tck刻度线长度

mtext("y=1/x",side=4,line=3,cex.lab=1,las=2,col = "blue")

#在图的右边缘加y=1/x

title("An Example of Creative Axes ",

      xlab="X values",

      ylab="Y=X")

par=opar#还原参数成为默认值,防止下次做图参数变化

#依剂量对比药物A和药物B的响应情况

dose<-c(20,30,40,45,60)

drugA<-c(16,20,27,40,60)

drugB<-c(15,18,25,31,40)

opar<-par(no.readonly=TRUE)

par(lwd=2,cex=1.5,font.lab=2)#坐标轴标签(名称)的字体样式

plot(dose,drugA,type="b",

     pch=15,lty=1,col="red",ylim=c(0,60),

     main = "DrugA vs.DrugB",

     xlab = "Drug Dosage",ylab="Drug Response")

lines(dose,drugB,type = "b",

      pch=17,lty=2,col="blue")

abline(h=c(30),lwd=1.5,lty=2,col="gray")#abline画直线#lines画线段(直线、曲线都可以)

library(Hmisc)#引用Hmisc

minor.tick(nx=3,ny=3,tick.ratio=0.5)

legend("topleft",inset=.05,title="Drug Type",c("A","B"), #.05=0.05

       lty=c(1,2),pch=c(15,17),col=c("red","blue"))#添加图例

par(opar)

#参考题型

detach(mtcars)

x<-1:5;y1<-1/x;y2<-2/x

plot(rep(x,2),c(y1,y2),type="n",xlab="x",ylab="y")

lines(x,y1);lines(x,y2,lty=2)

temp<-legend("topright",legend=c(" "," "),

             text.width=strwidth("1,000,000"),

             lty=1:2,xjust = 1,yjust = 1,

             title="Line Types")

text(temp$rect$left+temp$rect$w,temp$rext$y,

     c("1,000","1,000,000"),pos=2)

#文本标注

attach(mtcars)

plot(wt,mpg,

     main="Mileage vs.Car Weight",

     pch=18,col="blue")

text(wt,mpg,

     row.names(mtcars),

     cex=0.6,pos=4,col="red")

#text添加点对应的文本即加标注#pos文本相对于位置参数的方位

detach(mtcars)

#展示不同字体族

opar<-par(no.readonly=TRUE)#修改参数

par(cex=1.5)#cex符号大小

plot(1:7,1:7,type="n")#1:7横轴纵轴都划分7个#type画哪种形式的点,n表示不画图

text(3,3,"Example of default text ")#在图上添加文本#以3:3为中心添加文本

text(4,4,family="mono","Example of mono-spaced text")#family表示字体

text(5,5,family="serif","Examply of serif text ")

par(opar)#清除刚才设置的参数

#图形组合(四幅图形组合在两行两列)

attach(mtcars)#加载数据集到当前的工作目录

opar<-par(no.reasonly=TRUE)

par(mfrow=c(2,2))#生成两行两列的图(4幅图)

plot(wt,mpg,main="Sctterplot of wt vs.mpg")#plot作图,x轴wt

plot(wt,disp,main="Scatterplot of wt vs.disp")

hist(wt,main="Histogram of wt")#直方图

boxplot(wt,main="Boxplot of wt")#箱线图

par(opar)

detach(mtcars)#从搜索路径中分离对象

#四行一列图

attcah(mtcars)#加载数据集到当前的工作目录

opar<-par(no.readonly=TRUE)

par(mfrow=c(4,1))#四行一列#par(mfrow=c(1,4))为一行四列

plot(wt,mpg,main="Sctterplot of wt vs.mpg")#plot作图,x轴wt

plot(wt,disp,main="Scatterplot of wt vs.disp")

hist(wt,main="Histogram of wt")#直方图

boxplot(wt,main="Boxplot of wt")#箱线图

par(opar)#返回默认值

detach(mtcars)#从搜索路径中分离对象,把mtcars数据删除

#三行一列图

attach(mtcars)

opar<-par(no.reasonly="TRUE")

par(mfrow=c(3,1))

hist(wt)

hist(mpg)

hist(disp)

par(opar)

detach(mtcars)

#设置第一行图的高度,第二行两个图的宽度

attach(mtcars)

layout(matrix(c(1,1,2,3),2,2,byrow=TRUE),

       widths = c(3,1),heights = c(1,2))

#第一行宽度是第二行的三倍,第二行高度是第一行的的两倍

hist(wt)

hist(mpg)

hist(disp)       

par(opar)

detach(mtcars)

#图形布局的精细设置

attach(mtcars)

opar<-par(no.readonly=TRUE)

par(fig=c(0,0.8,0,0.8))#指定位置,横向和纵向的范围fig(x1,x2,y1,y2)

plot(wt,mpg,

     xlab="Miles Per Gallon",

     ylab = "Car Weight")

par(fig=c(0,0.8,0.55,1),new=TRUE)#散点图

boxplot(wt,horizontal=TRUE,axes=FALSE)#true是水平#axes禁用全部坐标轴

par(fig=c(0.65,1,0,0.8),new=TRUE)#箱线图

boxplot(mpg,axes=FALSE)

mtext("Enhanced Scatterplot",side=3,outer = TRUE,line=-3)

par=opar

detach(mtcars)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值