整理R语言学习中遇到的边边角角,有的还挺有意思和挺重要!
1.用data()函数可列出已载入的包中的所有数据集。
image-20191212162427911输入第一个,回车就可以显示该数据集,如下图,对于想练习R语言同时又暂时没有数据的情况下,可以用此上等办法哈哈
image-20191212162512160用data(package = .packages(all.available = TRUE))
会得到如下提示
> data(package = .packages(all.available = TRUE))
Warning messages:
1: In data(package = .packages(all.available = TRUE)) :
數據機从程序包'base'移到了程序包'datasets'
2: In data(package = .packages(all.available = TRUE)) :
數據機从程序包'stats'移到了程序包'datasets'
提示移到了程序包datasets,因此用datasets
可以查看所有的内置数据集,如下图显示,就可以看到经常作为示例的数据集mtcars
按回车
即可显示该数据集,如下图,赋值给一个变量就可以为我所用了
2.当对一个矩阵取子集时,得到的是一个没有维度的向量,如果想要保持维度属性,可以加上参数drop=FALSE
3.layout
函数可以实现非对称的并列绘图功能
4.plot是泛型函数,可以用args()
函数查看不同方法下更加详细的函数参数
5.with函数先了解一下
set.seed(1)
x <- rnorm(100,1,2)
m <- rnorm(100,2,3)
n <- rnorm(100,4,5)
y1 <- 2*x+m
y2 <- x-n
Y <- c(y1,y2)
X <- c(x,x)
Z <- as.data.frame(cbind(X,Y))
#前面铺垫了一堆,重点来了,就是with函数里可以直接传递,类似管道符的意思
with(Z,plot(X,Y))
image-20191212171905774
6.plot和boxplot在坐标轴上的位置,也就是谁是因变量谁是自变量的区别吧,qplot和plot差不多,是quick的plot。
attach(mtcars)
unique(cyl)
cylf <- as.factor(cyl)
plot(wt,mpg,main = 'Miles/(US) gallon vs.Weight(1b/1000)')
image-20191212170811324
boxplot(mtcars$mpg~mtcars$cyl,xlab = 'cyl:Number of cylinders',ylab = 'mpg:Miles/(US) gallon',main = 'Motor Trend Car Road Tests')
很喜欢的一点就是这个~
后面的代表类别型变量,~
代表的是数值型变量。
plot(x,y) x就是横轴,y就是纵轴,也就是在前面的就是画板中的横轴(解释变量),在后面的就是画板中的纵轴(被解释变量)
7.pie画饼图、barplot画柱状图、hist画直方图、boxplot画箱线图
简单饼图代码
colors()
y <- sample(657,20)
pie(rep(1:20),col=colors()[y],labels = y)
image-20191212173031612
8.颜色管理通过grDevice
包,不加任何参数输入命令colors()
返回的是657种颜色的名称
9.palette()
是管理颜色的调色板函数
10.是read.table默认非数值型数据转换成因子,而不是read.csv
11.如果忘记某个文件的准确位置,可以使用list.files()浏览文件夹目录作为输出结果。
12.read.csv默认为‘,’为分隔符,所以在想要读儒xlsx文件时,可另存为.csv的格式,然后用read.csv 来读取。由于read.csv默认为‘,’为分隔符,所以用read.csv时不用设置sep=
13.扩展包gdata中的read.xls函数可以读取excel电子表格
14.ls
函数列出包环境中所有的项目,使用自动加载的graphics包来举例
> ls('package:graphics')
[1] "abline" "arrows" "assocplot" "axis"
[5] "Axis" "axis.Date" "axis.POSIXct" "axTicks"
[9] "barplot" "barplot.default" "box" "boxplot"
[13] "boxplot.default" "boxplot.matrix" "bxp" "cdplot"
[17] "clip" "close.screen" "co.intervals" "contour"
#下面省略
上面这个示例可以在进行id转换时
用到,比如想看下,要注意的是,列出的项目既可以是函数,也可以是对象。比如上面graphics
中用ls列出后就有函数boxplot,而下面hugene10sttranscriptcluster.db
中用ls列出的就是对象因为接下来会用ids <- toTable(hugene10sttranscriptclusterSYMBOL)
这样的函数来提取表达探针和基因的对应信息
> ls("package:hugene10sttranscriptcluster.db")
[1] "hugene10sttranscriptcluster"
[2] "hugene10sttranscriptcluster_dbconn"
[3] "hugene10sttranscriptcluster_dbfile"
[4] "hugene10sttranscriptcluster_dbInfo"
[5] "hugene10sttranscriptcluster_dbschema"
[6] "hugene10sttranscriptcluster.db"
[7] "hugene10sttranscriptclusterACCNUM"
[8] "hugene10sttranscriptclusterALIAS2PROBE"
[9] "hugene10sttranscriptclusterCHR"
[10] "hugene10sttranscriptclusterCHRLENGTHS"
#下面省略
15.对于泛型函数,可以使用args()
查看不同方法下更加详细的函数参数,比如
> args(plot.default)
function (x, y = NULL, type = "p", xlim = NULL, ylim = NULL,
log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
ann = par("ann"), axes = TRUE, frame.plot = axes, panel.first = NULL,
panel.last = NULL, asp = NA, xgap.axis = NA, ygap.axis = NA,
...)
NULL
16.append
函数了解一下,用于修改合并向量,可以把两个向量合并为一个:
append(x, values, after = length(x))
#从一个向量的指定位置处,插入另一个向量:
> append(1:5, 0:1, after = 3)
[1] 1 2 3 0 1 4 5
17.如果数据集中有缺失值或者有未定义的变量(NA或NaN),R中的许多函数将无法从这样的数据结构中计算出统计量,就用na.rm=T
,该强制函数只作用于数据集中的数值型数据。
> mean(c(1,4,NA))
[1] NA
> mean(c(1,4,NaN))
[1] NaN
> mean(c(1,4,NA),na.rm = T)
[1] 2.5
> mean(c(1,4,NaN),na.rm = T)
[1] 2.5
18.扩展包中RColorBrewer
更改作图颜色
比如如下
install.packages('RColorBrewer')
library(RColorBrewer)
load('exp1.Rdata')
brewer.pal.info
colorcount <- ncol(exp1)
boxplot(exp1,col=colors(colorcount))
image-20191212173612230
#colorRampPalette()针对brewer.pal(8,'Accent')返回的颜色进行差值计算,返回一个函数cols
cols <- colorRampPalette(brewer.pal(8,'Accent'))
boxplot(exp1,col=cols(colorcount))
image-20191212173632955
目前知道的是应用这个RColorBrewer扩展包,可以避免当样本过多时,样本的颜色重复。
上面的8,'Accent'
来自brewer.pal.info
获得,brewer.pal.info
也来自RColorBrewer
扩展包。
19.字符串提取重头戏,里面的一些会举出具体示例
image-2019121218063009420.关于调出帮助文档,特别是这个GEOquery
的帮助文档,我从来没调出来成功过。?GEOquery
其实和help(GEOquery)
是一样的,??GEOquery
和help.search(GEOquery)
,所谓的一样是结果都是如下图所示呢
当下肯定是这种表情!
image-20191212175817012直到这个help(package='GEOquery')
的出现,才知道,查看这个包就加个package
就可以了,但是初学时哪能管得了那么多呢!展示如下图所示
上面好重要,因为下面的代码中第一步就是加载GEOquery
,事实上在网络上完全能搜到GEOquery
,但是我sometimes就是想在R里搜一下很正常嘛,毕竟?
和help
都是那么地容易,但是出现Result not found
的时候,真的是一脸问号❓脸呀!
library(GEOquery)
eSet <- getGEO("GSE42872",
destdir = '.',
getGPL = F)
#(1)提取表达矩阵exp
exp <- exprs(eSet[[1]])
exp[1:4,1:4]
#exp = log2(exp+1)
#(2)提取临床信息
pd <- pData(eSet[[1]])
#(3)提取芯片平台编号
gpl <- eSet[[1]]@annotation
save(pd,exp,gpl,file = "step1output.Rdata")
网友评论