美文网首页
R语言学习之数量生态学笔记(一)

R语言学习之数量生态学笔记(一)

作者: SingMooS | 来源:发表于2019-03-31 16:51 被阅读0次

    参考书:《Numerical Ecology with R》-Daniel Borcard -F-P


    1、基础函数(数据Doubs鱼类数据)


    table统计数据出现的频次

    > z

     [1] 1 1 1 2 5 5 7 7 7 7 7 7

    > table(z)

    z

    1 2 5 7 

    3 1 2 6 


    unlist函数的作用,就是将list结构的数据,变成非list的数据,即将list数据变成字符串向量或者数字向量的形式。不以列表形式展示

    > j<-list(c(1,2,3),5)

    > j

    [[1]]

    [1] 1 2 3

    [[2]]

    [1] 5

    > unlist(j)

    [1] 1 2 3 5


    nrow 提取数据总行数


    ncol 提取数据总列数


    head 只展示数据前几行


    定义数据目标数据,对于大数据,只需要显示前几行或者前几列时如spe数据

    spe( 1:5 , 1:10 ) 表示显示数据spe前五行前五列


    dim 提取数据框维度(行数列数)

    > dim(spe)

    [1] 30 27


    colnames 提取数据列数


    rownames 提取数据行数


    summary 以列为单位对列变量进行描述性统计

    > summary(spa)

           X                Y         

     Min.   :  0.00   Min.   : 20.00  

     1st Qu.: 80.94   1st Qu.: 42.13  

     Median : 96.56   Median : 73.14  

     Mean   : 97.58   Mean   : 66.57  

     3rd Qu.:130.03   3rd Qu.: 89.13  

     Max.   :159.44   Max.   :105.43  


     range 数据范围 

    range(spe)

    [1] 0 5


    barplot  柱状图

     barplot(height, width = 1, space = NULL,names.arg = NULL, legend.text = NULL,beside = FALSE,horiz = FALSE, density = NULL, angle =45,col = NULL, border =par("fg"),main = NULL, sub = NULL, xlab = NULL,ylab = NULL,xlim = NULL, ylim = NULL, xpd = TRUE,log = "",axes = TRUE, axisnames = TRUE, cex.axis=par("cex.axis"),cex.names=par("cex.axis"), inside = TRUE, plot = TRUE, axis.lty =0, offset = 0, add = FALSE, args.legend = NULL, ...)

    density:底纹的密度。默认值为NULL

    angle:设置底纹的斜率

    names.arg:边框的名字

    xlim和ylim:设置图形x轴与y轴的范围。

    xlab和ylab:设置x轴与y轴的lable

    axes:逻辑参数。设置图形是否显示x轴或y轴。(如果TRUE,垂直(或水平,horiz如果是真实的)轴绘制)

    las:与axes参数相对应,表示坐标轴label的方向(0和1)

    plot:逻辑参数。设置是否显示条形图。

    beside:逻辑参数。如果FALSE,那么将绘画堆叠式的条形;如果是TRUE,将绘画并列式条形。

    cex.axis:设置坐标轴数值的膨胀率。比如cex.axis=1.5

    cex.names: 设置条形标签(barlabels)的膨胀率。比如cex.axis=1.5

    col: 设置条形底纹或者填充颜色。

    gray:由白色到黑色的gray(0:8 / 8)0为纯白,1为纯黑,这儿分了8个程度

    border:设置条形边缘颜色。如果设置为NA,则消除了边缘

    width:设置条形的宽度

    axis.lty:设置x轴的类型(类似lty)。默认axis.lty=0

    names.arg:设置条形标签(barlabels)。

    horiz:逻辑参数。设置图形是水平或是垂直

    space:设置各个条形间的宽度。相当于各个条形宽度的一部分。

    axisnames:逻辑参数。设置是否显示条形标签

    xaxt= "n" 去除横坐标

    yaxt =  "n"去除纵坐标

    legend.text = 是添加文本

    args.legend 文本的位置topright,topleft,(args.legend = list(x = "topleft", cex=2))

    add = “TRUE”将barplot加在目前已经有的图上

    添加坐标轴的标签

    axis(side=1, c(-2, 0, 2),tcl=-0.2, labels=FALSE)#添加坐标轴,slide=1代表横坐标,slide=2代表纵坐标,tcl的值代表添加坐标轴的那个刻度的长度,

    图例函数legend()主要参数解释:

    除了利用x,y设置图例的坐标外,用”topleft”, "center","bottomright"等设置位置非常方便。ncol设置图例的列数,  horiz设置图例的排列方向。常有的参数还有col,lty,pch

     legend(x,y = NULL, legend, fill = NULL, col = par("col"),border="black", lty, lwd, pch,angle = 45, density = NULL, bty = "o", bg =par("bg"),box.lwd = par("lwd"), box.lty= par("lty"), box.col = par("fg"),pt.bg= NA, cex = 1, pt.cex = cex, pt.lwd = lwd,xjust = 0, yjust = 1, x.intersp = 1,y.intersp = 1,adj = c(0, 0.5), text.width = NULL,text.col = par("col"),merge = do.lines && has.pch,trace = FALSE,plot = TRUE, ncol = 1, horiz = FALSE,title = NULL, inset = 0, xpd, title.col = text.col) 

    x和y:设置图例在图片上的位置。

    title:设置图例标题。(在图例盒子里)。

    title.col:设置图例标题的颜色。

    text.col: 设置图例中文本文字的颜色。比如说:text.col=’red’。

    text.width: 设置图例文本文字的宽度。宽度比例与x轴相关。

    trace:逻辑参数。如果设置为TRUE,那么显示出函数计算过程。

    fill: 设置一个填充了指定颜色的盒子放在文本旁边。

    border:指定该盒子的边缘颜色。

    lty与lwd:设置图例中线条的类型以及粗细。

    density与angle:设置图例中小盒子的底纹密度和角度。

    bty:设置图例盒子的类型。只能选择o或者n。

    bg:设置图例盒子的背景颜色。

    box.lty/box.lwd/box.col:设置图例盒子边缘线类型,粗细,颜色。

    pt.bg:设置图例中点的背景颜色。

    pt.cex:设置点的膨胀率。

    pt.lwd:设置点的边缘线的粗细。

    xjust与yjust:上下调整图例的位置。

    x.intersp与y.intersp:设置图例盒子空间大小。

    ncol:设置图例显示的列数。

    horiz:设置水平方式显示图例。默认为垂直方式显示

    hist(): breaks设置每个柱的间距;freq柱图表示count或frequency;polt设置是否画图;density和angle可以设置柱上的斜线;axes设置是否需要画坐标轴; cor设置柱图的颜色;border设置柱图边界的颜色;xlim设置横轴范围;ylim设置纵轴范围。

    layout():mat用矩阵设置窗口的划分,矩阵的0元素表示该位置不画图,非0元素必须包括从1开始的连续的整数值,比如:1……N,按非0元素的大小设置图形的顺序。widths用来设置窗口不同列的宽度,heights设置不同行的高度。par()的mfcol,和mfrow参数也有类似layout的功能,不过相对layout就逊色多了。

    par():mar设置图离四个边缘的距离;bg设置背景颜色;xaxt和yaxt设置坐标轴标签的类型(=”n”表示不画轴标签);xlim和ylim设置坐标轴的范围。

    axis():las设置坐标轴标签的方式(水平,垂直……)。

    mtext():为四个坐标轴添加标签。

    text():在给定坐标的位置写字。

    lines():lty设置线的类型;lwd设置线的宽度。

    points():pch设置点的类型。

    heatmap():Rowv和Colv设置是否需要按行或列聚类;scale设置是否需要按行或列标准化;na.rm设置是否移去NA;RowSideColors和ColSideColors可以在行或列边缘添加颜色;keep.dendro设置是否画聚类树。

    dendrogram():'nodePar'和'edgePar'都是list,可以方便的设置节点和边的各种属性,如:颜色,样式,宽度,标签……。


    plot 散点图

    plot(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, ...)

    主要参数的含义如下:

    (1)type为一个字符的字符串,用于给定绘图的类型,可选的值如下:

    "p":绘点(默认值);

    "l":绘制线;

    "b":同时绘制点和线;

    "c":仅绘制参数"b"所示的线;

    "o":同时绘制点和线,且线穿过点;

    "h":绘制出点到横坐标轴的垂直线;

    "s":绘制出阶梯图(先横后纵);

    "S":绘制出阶梯图(先纵后竖);

    "n":作空图。

    (2)main参数 字符串,给出图形的标题;

    (3)sub参数 字符串,给出图形的子标题;

    (4)xlab 和 ylab参数 字符串,用于给出x轴和y轴的标签。

    (5)xlim 和 ylim参数 都是二维向量,分别表示x轴和y轴的取值范围。

    1、符号和线条

        pch:指定绘制点所使用的符号,取值范围[0, 24],其中4是“差号”,20是“点”

        cex:指定符号的大小。cex是一个数值,表示pch的倍数,默认是1.5倍

        lty:指定线条类型。lty=1代表实线,2至6都是虚线,虚的程度不一样

        lwd:指定线条宽度,默认值为lwd=1,可以适当修改1.5倍、2倍等

    2、颜色

        col:默认绘图颜色。某些函数(如lines、pie)可以接受一个含有颜色值的向量,并自动循环使用。

               例如:col=c("red", "blue")需要绘制三条线,那么三条颜色分别为red、blue、red

       col.axis:坐标轴刻度文字的颜色,不是坐标轴的颜色

        col.lab:坐标轴标签(名称)的颜色

        col.main:标题的颜色

        col.sub:副标题的颜色

        fg:图形的前景色

        bg:图形的背景色( 先要用pch指定形状)

    3、文本属性(用来指定字号、字体、字样)

        cex.axis:坐标轴刻度文字的缩放倍数

        cex.lab:坐标轴标签(名称)的缩放倍数

        cex.main:标题的缩放倍数

        cex.sub:副标题的缩放倍数

        font:整数。用于指定字体样式。1常规、2粗体、3斜体、4粗斜体

    4、图形尺寸与图形边界

        pin:以英寸表示图形的宽和高

        mai:以数值向量表示边界大小,顺序为"下、左、上、右",单位为英寸

        mar:以数值向量表示边界大小,顺序为"下、左、上、右",单位为英分,默认值c(5, 4, 4, 2)+0.1

    5、标题

        可以使用函数title,格式为:

            title(main = " ", sub = " ", xlab = " ",  ylab = " ")

       也可以直接把title里面的参数直接放在plot()里面

    6、坐标轴

         axes=FALSE  将禁用全部坐标轴,框架和刻度全部没有了

         xaxt="n"   禁用x轴的刻度线

         yaxt="n"   禁用y轴的刻度线

         asp 限定 y/x aspect 比率

    也可以通过axis函数自定义axis(……)    

         side:一个整数。表示在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右)

        at:一个数值向量,表示需要绘制刻度线的位

        labels:一个字符型向量(也可以是数值型),表示刻度线旁边的文字标签(刻度值),如果整个不写,则直接使用at的值

         col:线条和刻度的颜色

         lty:线条类型

         las:标签的字体是否平行(=0)或者垂直(=2)坐标轴

         tck:刻度线的长度(默认值-0.01,负值表示刻度在图形外,正值表示刻度在图形内侧)

    7、参考线

                 abline(h=yvalues, v=xvalues)

                例如:plot(1:10)

                 abline(h = c(1, 5))  #则在y=1和5处各有一条水平线

                abline(v = c(1, 5))  #则在x=1和5处各有一条垂直线

    lines 给散点图连接直线

    text 坐标轴中添加文字,格式:text(x,y,"内容",cex = ,col= )


    par 绘图窗口分成多个区域

    par(mfrow=c(a,b)):分成a行b列


    apply 

    例子:

    b为:

          first second

    one      1      4

    two      2      5

    three    3      6

    apply(b,1,sum)

    上面的指令代表对矩阵b进行行计算,分别对每一行进行求和。函数涉及了三个参数:

    第一个参数是指要参与计算的矩阵;

    第二个参数是指按行计算还是按列计算,1——表示按行计算,2——按列计算;

    第三个参数是指具体的运算参数。

    sort 数据按照升序排列


    hist  立方图

    x: 用于绘制直方图的数据,该参数的值为一个向量

    break : 该参数的指定格式有很多种

    第一种: 指定一个向量,给出不同的断点

    breaks = c(0.5, 1.5, 2.5, 3.5)

    第二种:指定分隔好的区间的个数,会根据区间个数自动去计算区间的大小

    breaks = seq(0,30,by = 5)

    freq: 逻辑值,默认值为TRUE , y轴显示的是每个区间内的频数,FALSE, 代表显示的是频率(= 频数/ 总数)

    probability : 逻辑值,和 freq 参数的作用正好相反,TRUE 代表频率, FALSE 代表频数

     labels: 显示在每个柱子上方的标签,

    axes : 逻辑值,是否显示轴线

     col : 柱子的填充色

    border : 柱子的边框的颜色,默认为black, 当border = NA 时, 代表没有边框

    densitty 和 angle , 用线条填充柱子


    seq  生成一系列的数值

    seq(a,b,c)

    开始数值为a,结束数值为b,步长c,无步长默认为1


    +, -, * , / 矩阵的四则运算,对应位置的元素进行运算要求矩阵的维数必须相同

    t() 矩阵的行列转置

    colSums() 分别对矩阵的每一列进行求和

    rowSums() 分别对矩阵的每一行进行求和

    colMeans() 分别对矩阵的每一列进行求平均值

    rowMeans() 分别对矩阵的每一行进行求平均值

    det() 解方程的行列式

    crossprod() 解两个矩阵的内积

    outer() 解两个矩阵的外积,又叫叉积

    %*% 矩阵乘法,要求第一个矩阵的列数与行数相同

    diag() 对矩阵取对角元素,若对象为向量(不管有没有缺失值),则生成以向量为对角元素的对角矩阵

    solve() 在矩阵可逆的情况下,对矩阵求逆矩阵

    eigen() 对矩阵求解特征值和特征向量

    相关文章

      网友评论

          本文标题:R语言学习之数量生态学笔记(一)

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