#如何生成矩阵并将行列命名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)