写在前面
评阅的内容全部都是灰色. 第一章基本指令1.3.3 工作目录相关每次进行项目均要指定工作目录,方便文件保存与读取 # 查看工作目录 getwd()
# 设置工作目录,注意R为反斜杠 setwd("C:/cabbage/result/机器学习")
# 通过界面手动选择 1.4 包相关R包类似于功能集合 # 常用安装,下载前设置好镜像位置 install.packages()
# 通过github安装 library("devtools") install_github("github上项目所在位置")
# 通过bioconductor安装 BiocManager::install()
# 本地安装,通过R包中Rproj文件Building
# 本地安装,下载R包压缩文件 # 包加载 library()
# 查看帮助文件 ?ggplot()
选中包后,F1快捷键 第二章数据结构向量,存储数值、字符、逻辑数据的一维数组(理解,熟练运用)
a<- c(1,2,3) # 访问单一数值 a[1]
# 访问多个 a[c(1,2)]
# 连续选择 a[1:3] 矩阵,二维数据结构,存储单一数值、字符、逻辑(理解,熟练运用)
# 创建5 行四列矩阵,默认按列填充 b<- matrix(1:20,nrow = 5,ncol = 4)
[,1] [,2] [,3] [,4] [1,] 1 6 11 16 [2,] 2 7 12 17 [3,] 3 8 13 18 [4,] 4 9 14 19 [5,] 5 10 15 20
# 设置行列名称 rname=c("a","b","c","d","e") cname=c("f","g","h","m") c<- matrix(1:20,nrow = 5,ncol = 4,dimnames = list(rname,cname))
# 选择b中第二行 b[2,]
# 选择第2列 b[,2]
# 选择某个元素 b[2,2]
# 选择2行,2到4列 b[2,c(2:4)] 数据框,最常见的数据结构,列向量可为任何类型(理解,熟练运用)
# 选取数据框中1到6列 diamonds[1:6]
# 选取其中某一列 library(tidyverse) summary(diamonds$carat)
# 减少重复数据书写,选取当前数据集 attach(diamonds) summary(carat)
# 解除对数据集占有 detach() 因子:包括有序型和类别型。在可视化中,与图形展示顺序相关。(理解,熟练运用)
# 字符型因子,默认排序按照字母顺序 status <- c("Poor", "Improved", "Excellent", "Poor") status <- factor(status, ordered=TRUE)
status [1] Poor Improved Excellent Poor Levels: Excellent < Improved < Poor
#修改顺序 status <- factor(status, order=TRUE, levels=c("Poor", "Improved", "Excellent"))
# 示例 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指定为普通因子 diabetes <- factor(diabetes) # status指定为有序因子 status <- factor(status, order=TRUE) patientdata <- data.frame(patientID, age, diabetes, status) str(patientdata) 列表:可能是若干向量、矩阵、数据框,甚至其他列表的组合(理解,熟练运用)
# 示例 g <- "My First List" h <- c(25, 26, 18, 39) j <- matrix(1:10, nrow=5) k <- c("one", "two", "three") # 生成列表包含两部分,第一部分包含题目,第二部分包含age相关信息 mylist <- list(title=g, ages=h, j, k) mylist$title mylist$ages 数据导入(理解,熟练运用)
read.table()读取分隔符文件 # 参数介绍 # 读取第一行为表头 header=T
# 制表分隔符,默认空格 sep=","
# 读取第一列做为列名,列名不允许重复 row.names= T
# 设置列向量类型为字符型、数字型等 colClasses=c("numeric", "numeric", "character", "NULL", "numeric")
# 取消对读取信息进行因子型转换 stringsAsFactors=FALSE
# 跳过前几行 skip 第三章R基础包进行图形绘制# 示例 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") # x轴为dose,y轴为drugA,type="b"使用点线连接图形,lty=2线条修改为虚线,pch=17点设置为实心三角 plot(dose, drugA, type="b", lty=2, pch=17) 图形参数pch 指定绘制点时使用的符号 cex 指定符号的大小。cex 是一个数值,表示绘图符号相对于默认大小的缩放倍数。默认大小为 1 示放大为默认值的 1.5 倍, 0.5 表示缩小为默认值的 50% lty 指定线条类型 lwd 指定线条宽度。lwd 是以默认值的相对大小来表示的(默认值为 1)。例如, lwd=2 将生成一条两倍于 默认宽度的线条
颜色设置col 默认的绘图颜色。某些函数(如 lines 和 pie)可以接受一个含有颜色值的向量并自动循环使用。 例如,如果设定 col=c(“red”, “blue”)并需要绘制三条线,则第一条线将为红色,第二条线为蓝 色,第三条线又将为红色 col.axis 坐标轴刻度文字的颜色 col.lab 坐标轴标签(名称)的颜色 col.main 标题颜色 col.sub 副标题颜色 fg 图形的前景色 bg 图形的背景色 颜色展示 library(RColorBrewer) n <- 7 # Set1调色板中抽取了7种用十六进制表示的颜色 mycolors <- brewer.pal(n, "Set1") barplot(rep(1,n), col=mycolors)
# 查看RColorBrewer中所有颜色 brewer.pal.info 文本设置cex 表示相对于默认大小缩放倍数的数值。默认大小为 1, 1.5 表示放大为默认值的 1.5 倍, 0.5 表示缩小为 默认值的 50%,等等 cex.axis 坐标轴刻度文字的缩放倍数。类似于 cex cex.lab 坐标轴标签(名称)的缩放倍数。类似于 cex cex.main 标题的缩放倍数。类似于 cex cex.sub 副标题的缩放倍数。类似于 cex font 整数。用于指定绘图使用的字体样式。1=常规, 2=粗体, 3=斜体, 4=粗斜体, 5=符号字体(以 Adobe 符号编码表示) font.axis 坐标轴刻度文字的字体样式 font.lab 坐标轴标签(名称)的字体样式 font.main 标题的字体样式 font.sub 副标题的字体样式 ps 字体磅值( 1 磅约为 1/72 英寸)。文本的最终大小为 ps*cex family 绘制文本时使用的字体族。标准的取值为 serif(衬线)、 sans(无衬线)和 mono(等宽) 图形尺寸pin 以英寸表示的图形尺寸(宽和高) mai 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英寸 mar 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英分①。默认值为 c(5, 4, 4, 2) + 0.1 # 生成一幅4英寸宽、 3英寸高、上下边界为1英寸、左边界为0.5英寸、右边界为0.2英寸的图形 par(pin=c(4,3), mai=c(1,.5, 1, .2)) 添加文本、自定义坐标轴和图例(学会使用)
标题 title(main="main title", sub="subtitle", xlab="x-axis label", ylab="y-axis label") 坐标轴 axis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ...) side 一个整数,表示在图形的哪边绘制坐标轴( 1=下, 2=左, 3=上, 4=右) at 一个数值型向量,表示需要绘制刻度线的位置 labels 一个字符型向量,表示置于刻度线旁边的文字标签(如果为 NULL,则将直接使用 at 中的值 ) pos 坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值) lty 线条类型 col 线条和刻度线颜色 las 标签是否平行于( =0)或垂直于( =2)坐标轴 tck 刻度线的长度,以相对于绘图区域大小的分数表示(负值表示在图形外侧,正值表示在图形内侧, 0 表示禁用刻度, 1 表示绘制网格线);默认值为–0.01 示例 # 生成2数据 x <- c(1:10) y <- x z <- 10/x
# 控制图形边界 opar <- par(no.readonly=TRUE) par(mar=c(5, 4, 4, 8) + 0.1)
# 生成图形,type="b"点线图, pch=21选择点的类型,yaxt="n"去除y轴刻度, lty=3线条类型, col="red"边界色红色,ann=FALSE无注释信息 plot(x, y, type="b", pch=21, col="red", yaxt="n", lty=3, ann=FALSE)
# 添加直线 lines(x, z, type="b", pch=22, col="blue", lty=2)
# 绘制新轴 axis(2, at=x, labels=x, col.axis="red", las=2) axis(4, at=z, labels=round(z, digits=2), col.axis="blue", las=2, cex.axis=0.7, tck=-.01)
# 添加注释信息 mtext("y=1/x", side=4, line=3, cex.lab=1, las=2, col="blue") title("An Example of Creative Axes", xlab="X values", ylab="Y=X") par(opar) 参考线 abline(h=yvalues, v=xvalues)
# 在y为1、 5、 7的位置添加了水平实线 abline(h=c(1,5,7)) 图例 legend(location, title, legend, ...) location 有许多方式可以指定图例的位置。你可以直接给定图例左上角的 x、 y 坐标,也可以执行 locator(1), 然后通过鼠标单击给出图例的位置,还可以使用关键字 bottom、 bottomleft、 left、 topleft、 top、 topright、 right、 bottomright 或 center 放置图例。如果你使用了以上某个关键字,那么可以 同时使用参数 inset=指定图例向图形内侧移动的大小(以绘图区域大小的分数表示) title 图例标题的字符串(可选) legend 图例标签组成的字符型向量 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="Drug A vs. Drug B", 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")
# 添加刻度线 library(Hmisc) minor.tick(nx=3, ny=3, tick.ratio=0.5) legend("topleft", inset=.05, title="Drug Type", c("A","B") lty=c(1, 2), pch=c(15, 17), col=c("red", "blue")) par(opar) 文本标注(学会使用)
text(location, "text to place", pos, ...)
mtext("text to place", side, line=n, ...) location 文本的位置参数。可为一对 x、 y 坐标,也可通过指定 location 为 locator(1)使用鼠标交互式地确 定摆放位置 pos 文本相对于位置参数的方位。1=下, 2=左, 3=上, 4=右。如果指定了 pos,就可以同时指定参数 offset= 作为偏移量,以相对于单个字符宽度的比例表示 side 指定用来放置文本的边。1=下, 2=左, 3=上, 4=右。你可以指定参数 line=来内移或外移文本,随着 值的增加,文本将外移。也可使用 adj=0 将文本向左下对齐,或使用 adj=1 右上对齐 图形的组合(学会使用)
par()或layout()可以容易地组合多幅图形为一幅总括图形。 后续作图使用ggplot2较多,参数的设置与基础包并不相同,因此对图形相关章节并未深入学习。 评语这份学习笔记相比而言是有一些基础在里面的,学习内容,尤其是前一部分有了部分总结的成分,但是需要注意还有一些细小的知识很重要的知识需要学习: 例如:数据统计函数,saink函数,source函数,这些都是前面介绍过的,很有用的函数,需要进一步补充到笔记中。 在后续的重复学习中药在R.Rmd中做笔记,在运行的过程中理论和实践结合。
|