美文网首页R
R语言小tips-1

R语言小tips-1

作者: 小梦游仙境 | 来源:发表于2019-12-13 10:44 被阅读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")
    

    相关文章

      网友评论

        本文标题:R语言小tips-1

        本文链接:https://www.haomeiwen.com/subject/ccqfnctx.html