R语言小tips-1

整理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")
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容