R

R语言小tips-1

2019-12-13  本文已影响0人  小梦游仙境

整理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

image-20191212163357665

回车即可显示该数据集,如下图,赋值给一个变量就可以为我所用了

image-20191212163523780

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')

很喜欢的一点就是这个~后面的代表类别型变量,~代表的是数值型变量。

image-20191212170942458

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-20191212180630094

20.关于调出帮助文档,特别是这个GEOquery的帮助文档,我从来没调出来成功过。?GEOquery其实和help(GEOquery)是一样的,??GEOqueryhelp.search(GEOquery),所谓的一样是结果都是如下图所示呢

image-20191212174918836

当下肯定是这种表情!

image-20191212175817012

直到这个help(package='GEOquery')的出现,才知道,查看这个包就加个package就可以了,但是初学时哪能管得了那么多呢!展示如下图所示

image-20191212175344393 image-20191212175239352 image-20191212175326333

上面好重要,因为下面的代码中第一步就是加载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")
上一篇下一篇

猜你喜欢

热点阅读