生信必備技巧之R語言基礎(chǔ)教程--向量基礎(chǔ)和進(jìn)階

??R語言是數(shù)學(xué)研究工作者設(shè)計(jì)的一種數(shù)學(xué)編程語言,主要用于統(tǒng)計(jì)分析、繪圖、數(shù)據(jù)挖掘。R語言是解釋運(yùn)行的語言(與C語言的編譯運(yùn)行不同),它的執(zhí)行速度比C語言慢得多,不利于優(yōu)化。但它在語法層面提供了更加豐富的數(shù)據(jù)結(jié)構(gòu)操作并且能夠十分方便地輸出文字和圖形信息,所以它廣泛應(yīng)用于數(shù)學(xué)尤其是統(tǒng)計(jì)學(xué)領(lǐng)域。這也是大多數(shù)生信工作者選擇R語言的原因。

3. 數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)

  1. 數(shù)據(jù)類型:數(shù)據(jù)類型指的是用于聲明不同類型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。變量的類型決定了變量存儲占用的空間,以及如何解釋存儲的位模式;
    • R 語言中的最基本數(shù)據(jù)類型主要有三種:
      • 數(shù)字
      • 邏輯
      • 文本
a = 1
b <- TRUE
d = "abc"

class(a)
class(b)
class(d)
  1. 數(shù)據(jù)結(jié)構(gòu)

    R擁有許多用于存儲數(shù)據(jù)的對象類型,包括標(biāo)量、向量、矩陣、數(shù)組、數(shù)據(jù)框和列表。它們在存儲數(shù)據(jù)的類型、創(chuàng)建方式、結(jié)構(gòu)復(fù)雜度,以及用于定位和訪問其中個(gè)別元素的標(biāo)記等方面均有所不同。圖2-1給出了這些數(shù)據(jù)結(jié)構(gòu)的一個(gè)示意圖。

    <img src=".\Figures\WechatIMG581.jpeg" alt="WechatIMG581" style="zoom:50%;" />

  • 向量:

    • a <- c(1,2,5,3,6,-2,4)
      b <- c("one", "two", "three")
      d <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)
      
      # 由于R中內(nèi)置了同名函數(shù)c(),最好不要在編碼時(shí)使用c作為對象名,否則可能產(chǎn)生一些不易察覺的問題。
      

      這里:a是數(shù)值型向量,b是字符型向量,而c是邏輯型向量。
      注意:單個(gè)向量中的數(shù)據(jù)必須擁有相同的類型或模式(數(shù)值型、字符型或邏輯型) 。同一向量中無法混雜不同模式的數(shù)據(jù)。

  • 與向量相關(guān)的常用操作:

    # 快速創(chuàng)建連續(xù)數(shù)列:
    a <- c(1:10)
    
    # seq函數(shù)創(chuàng)建數(shù)列:
    a <- seq(1,10,2)  # seq(from = value1 ,to = value2 , by = step)
    
    # 重復(fù)函數(shù)rep:
    rep(x,times = value1) # 即表示將x重復(fù)value1次。
    
  • 訪問向量中的元素:

    • 通過在方括號中給定元素所處位置的數(shù)值, 我們可以訪問向量中的元素。

      例如, a[c(2, 4)] 用于訪問向量a中的第二個(gè)和第四個(gè)元素。

    a <- c(1,2,5,3,6,-2,4)
    
    a[3]
    
    a[c(1,3,4)]
    
    a[2:6]
    
  • 修改向量中的元素:

    # 創(chuàng)建向量
    x <- c(1,2,24)
    x
    
    # 修改向量中的元素
    x[c(1,3)] <- c(23,43)
    x
    
    # 負(fù)號表示刪除元素
    x <- c(1:10)
    x[-(1:5)]
    
  • 進(jìn)階:

    • 字符型元素即用雙引號括起來的元素,如"beautiful",“handsome”,“er”,諸如此類,這里我們主要講一個(gè)paste函數(shù),將字符型變量給合并成一個(gè)字符串,形式為:
      paste(“variable1”,”variable2",…,sep=’ ',collapse=NULL)
    • 其中sep參數(shù)是指變量和變量之間的連接,默認(rèn)為空字符,collapse參數(shù)是指合并過后的元素之間的連接,默認(rèn)為空,
    # 我們簡單的舉幾個(gè)例子就很清晰了:
    a <- paste("a","b","c",1:3,sep = '')
    a
    
    b <- paste("a","b","c",1:3,sep = '+')
    b
    
    c <- paste("a","b","c",1:3,sep = '+',collapse = '----')
    c
    
    # 我們發(fā)現(xiàn)若是給定collapse一個(gè)參數(shù)就會變成一整個(gè)合并的字符串,默認(rèn)的話就是一個(gè)一個(gè)合并過后地元素??梢钥碽和c的區(qū)別。
    
    • 向量相關(guān)的運(yùn)算:
    # 取向量中最小最大的值:
    min()
    max()
    
    # 求的是取得最?。ù螅┲档牡趲讉€(gè)分量
    which.min()
    which.max()
    sum()  # 求和
    median()   # 求中位數(shù)
    prod()  # 求積
    var()  # 方差、
    mean() # 平均值等
    sort() # 給x排序,默認(rèn)遞增
    rev() # 倒序
    order() # 給出遞增的序列號
    a[order(a)]
    

    ??本期內(nèi)容就到這里,喜歡的小伙伴還請幫忙點(diǎn)贊、關(guān)注和轉(zhuǎn)發(fā),你們的支持是我們更新的動力。

往期文章

  1. 生信必備技巧之R語言基礎(chǔ)教程--R包安裝和載入
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容