R語言函數索引


R語言函數索引

  在學習R語言的途中,發現函數太多實在不好記。所以,本文記錄下學習期間遇到的函數,做一個備忘,索引,方便查看函數的大致用途!學到什麽就更新什麽!

  1. str() 緊湊的顯示R對象的內部結構
    生成隨機變量 rpois() 泊松隨機變量
    d 正態分布
    pnorm() 估計累計分布
    qnorml() 估計分位數
    summary()
    set.seed() 隨機數字成成器種子,可以用來生成完全相同的隨機數
    設置符合模型的隨機變量
    rbinom() 二項分布
    sample() 從指定的一組對象集合中隨機抽樣 sample.interval=
    分析器 分析耗時時間長的原因
    system.time() 取出並分析任意一條R語句運行時間
    多核庫
    R分析器 函數Rprof() 啟動R中的分析器,可在規律的樣本區間內記錄追蹤函數調用棧,函數運行必須大於0.02秒
    summaryRprof() 取出分析結果,總結成可以閱讀的方式
    規范化 by,total
    by self 函數真正耗費的時間


     

     

  2. lapply() 回傳為一個列表
    sapply() 簡化了結果,結果可以簡化為向量
    apply() 對數組進行行或者列的運算
    tapply() 運用於向量的子集
    mapply() 運用於多變量,變量類型不同
    split() 把對象分為幾塊
    mean 均值
    runif 使用隨機數發生器生成符合均勻分布的隨機變量
    匿名函數 不必為函數指明名稱
    probs() 計算百分位
    quantitle() 想計算的分位數
    rep() 重復
    rnorm(10),runif(10),rnorm(10,1) 10個正態隨機變量,10個均勻隨機變量,10個均值為1的正態隨機變量
    range 返回的范圍
    有缺失值將會導致無法計算平均值
    interaction() 組合
    統計 sqlist(x,list(f1,f2))) drop=TRUE 減去水平為空的

    traceback() 告知一共調用了多少個函數,以及錯誤在哪里
    debug() 停在函數的第一行,browser()
    browser() 一行一行的執行
    trace() 可以在函數中加入試調代碼,不用改變源碼
    recover() 錯誤處置函數


     

  3. repeat 執行無限循環
    next 忽略程序中的某次迭代
    return 退出函數
    seq_along(x) 創建一個與x等長的數列
    rbinom()
    sd() 計算標准差
    na.rm=FALSE 是否移除缺省值
    lm() 把數據擬合到線性模型
    formula,公式 subset,子集,weights 權重
    惰性求值
    ... 參數 一些可以傳遞給另一個函數的參數,用於拓展另一個函數,不想復制原函數的整個參數表
    繪制線 type=1
    ... 用在泛型函數中,使得附加函數可以傳遞給方法(method)
    泛型函數不做任何事,他的作用是根據數據類型使用合適的方法
    ...用在事先函數的參數個數不確定的時候
    paste() 將一組字符串連起來,新建一個字符或者是字符串向量
    cat() 將字符串鏈接,輸出到文件或者控制台
    ... 之后的參數列表需要明確的給出名稱,而且不能進行部分匹配
    library() 載入一個包
    作用域規則是R不同於S的所在,一個值如何與函數中的自由變量綁定起來,詞法作用域
    構造函數
    函數可以嵌套
    ls(environment(函數環境)) 查看函數所在的環境
    get("n",environment(函數)) 得到n的環境

    1 > x<-as.Date("1970-01-01")
    2 > x
    3 [1] "1970-01-01"
    4 > unclass(x)
    5 [1] 0
    6 > unclass(as.Date("2015-10-07"))
    7 [1] 16715
    8 > 


    as.Date() 轉換日期
    as.POSIXit() as.POSIXct() 轉換為時間
    Sys.time() 返回系統時間
    as.POSIXlt() 轉換為這種格式 類型是一個列表
    POSIXct() 用很大的整數來表示

    1 p<- as.POSIXlt(x)
    2 > names(unclass(p))
    3 [1] "sec" "min" "hour" "mday" "mon" "year" 
    4 [7] "wday" "yday" "isdst" "zone" "gmtoff"
    5 > p
    6 [1] "2015-10-07 16:47:54 CST"
    7 > 

    strptime() 函數 字符串函數轉換為時間或者日期對象
    as.Date() 作為時間


     

  4.  

    R Programming for Data Science
    R導論
    R數據的導入與導出
    #表示右邊所有的內容都是注釋
    【1】元素在向量里的位置
    list可以包含多種數據類型
    向量只能包含一種數據類型
    數字后大寫L表示整型的數字
    inf表示無窮
    NAN 無定義的值
    對象屬性 維度 長度 類 用戶屬性
    attribute() 設定修改對象的屬性
    c() 串聯對象,不同類型后台強制轉換 創建對象屬性
    顯示的轉換 as.開頭 NA轉換失敗
    matrix() 矩陣
    dim() 維度
    創建矩陣 1,數據 行列號,先填行,后列
    2.先建立向量,后添加屬性
    3.綁定行和列來創建 cbind() rbind()
    factor 因子,有序,無序兩種,無序用來標記那些可以分類,無序的數據,有序標記有先后順序的數據,可以不是數值類型但是有序。相當於標簽。
    table() 頻率
    unclass() 移除向量的類型
    leaves() 確定基線水平
    NAN 未定義的數學運算
    NA 它的缺失值,也有不同的類
    is.na() 用來檢查值是否缺失
    NAN是NA 但是NA不一定是NAN
    Data Frames 數據框 用來存儲數據表格數據的重要類型,可以存儲不同類型的對象(與矩陣相比)
    read.table() read.csv 創建數據框,data.frame()
    data.matrix() 數據框轉換為矩陣
    names()<-c() 為對象賦予名字
    list(a=1,b=2,c=3) 為list賦予名字
    matrix 名字 dimnames(m)<- list(c("a","b"),c("c","d"))
    Summary
    R讀取數據
    1.read.table() 默認分割符空格 2.read.csv() 默認分割符逗號 返回一個 data frame
    readLines() 逐行讀取文本文件,返回一個字符向量
    source() dget()讀取R代碼文件,分析過后,文本方式存儲的R對象
    load() unserialize() 用於把二進制對象讀入R
    寫入 write.table() writeLines(),dump(),dput(),save(),serialize()
    header 第一行是否是表頭 sep分割符 colClass 字符集 與列數相等 skip忽略多少行
    sapply() 遍歷每一列,調用class() 確定類型
    url() 與網頁建立聯系
    file() 無壓縮的文件建立聯系
    gzfile() bzfile() 用來建立和壓縮文件之間的聯系
    description="" 參數是文件名
    讀取文件 con<- file("文件名","r")
    data <- read.csv(con)
    close(con)
    與下面效果相同 data<- read.csv("文件名")
    con<- gzfile("name")
    x<- readlines(con,10)
    讀取指定的行數
    雙括號可以使用計算的索引,可以用一個整數數列作為參數
    subsetting a Matrix
    向量化運算,不用寫循環,事件可以是並行的
    ==測試相等性
    矩陣 x*y 按元素相乘,並非矩陣乘法
    矩陣乘法 %*%
    工具 swirl
    optim() nlm() 用於優化的函數 optimize() 默認求最小值
    sigma() 標准差
    cmd+i 縮進
    traceback() 分析錯誤

    內部時間1970年至今以秒的方式計數


    2015-10-10

  5. inentical()
    all.equal()
    都可用於比較兩個對象,inentical()比較內在關系,嚴格的相同返回TRUE;all.equal()用於比較
    近似相等。
    > 0.9 == (1 - 0.1)
    [1] TRUE
    > identical(0.9, 1 - 0.1)
    [1] TRUE
    > all.equal(0.9, 1 - 0.1)
    [1] TRUE
    > 0.9 == (1.1 - 0.2)
    [1] FALSE
    > identical(0.9, 1.1 - 0.2)
    [1] FALSE
    > all.equal(0.9, 1.1 - 0.2)
    [1] TRUE
    > all.equal(0.9, 1.1 - 0.2, tolerance = 1e-16)
    [1] "Mean relative difference: 1.233581e-16"
    data.entry()圖形的電子表格編輯器
    de()返回一個列表



     


  6.  

     

    一、數據管理
    vector:向量
    numeric:數值型向量
    logical:邏輯型向量
    character;字符型向量
    list:列表
    data.frame:數據框
    c:連接為向量或列表
    length:求長度
    subset:求子集
    seq,from:to,sequence:等差序列
    rep:重復
    NA:缺失值
    NULL:空對象
    sort,order,unique,rev:排序
    unlist:展平列表
    attr,attributes:對象屬性
    mode,typeof:對象存儲模式與類型
    names:對象的名字屬性

    二、字符串處理
    character:字符型向量
    nchar:字符數
    substr:取子串
    format,format C:把對象用格式轉換為字符串
    paste,strsplit:連接或拆分
    charmatch,pmatch:字符串匹配
    grep,sub,gsub:模式匹配與替換

    三、復數
    complex,Re,Im,Mod,Arg,Conj:復數函數

    四、因子
    factor:因子
    codes:因子的編碼
    levels:因子的各水平的名字
    nlevels:因子的水平個數
    cut:把數值型對象分區間轉換為因子
    table:交叉頻數表
    split:按因子分組
    aggregate:計算各數據子集的概括統計量
    tapply:對“不規則”數組應用函數

     

    數學相關計算

    一、計算
    +, -, *, /, ^, %%, %/%:四則運算
    ceiling,floor,round,signif,trunc,zapsmall:舍入
    max,min,pmax,pmin:最大最小值
    range:最大值和最小值
    sum,prod:向量元素和積
    cumsum,cumprod,cummax,cummin:累加、累乘
    sort:排序
    approx和approx fun:插值
    diff:差分
    sign:符號函數

    二、數學函數
    abs,sqrt:絕對值,平方根
    log, exp, log10, log2:對數與指數函數
    sin,cos,tan,asin,acos,atan,atan2:三角函數
    sinh,cosh,tanh,asinh,acosh,atanh:雙曲函數
    beta,lbeta,gamma,lgamma,digamma,trigamma,tetragamma,pentagamma,choose ,lchoose:與貝塔函數、伽瑪函數、組合數有關的特殊函數
    fft,mvfft,convolve:富利葉變換及卷積
    polyroot:多項式求根
    poly:正交多項式
    spline,splinefun:樣條差值
    besselI,besselK,besselJ,besselY,gammaCody:Bessel函數
    deriv:簡單表達式的符號微分或算法微分

    三、數組
    array:建立數組
    matrix:生成矩陣
    data.matrix:把數據框轉換為數值型矩陣
    lower.tri:矩陣的下三角部分
    mat.or.vec:生成矩陣或向量 t:矩陣轉置
    cbind:把列合並為矩陣
    rbind:把行合並為矩陣
    diag:矩陣對角元素向量或生成對角矩陣
    aperm:數組轉置
    nrow, ncol:計算數組的行數和列數
    dim:對象的維向量
    dimnames:對象的維名
    row/colnames:行名或列名
    %*%:矩陣乘法
    crossprod:矩陣交叉乘積(內積)
    outer:數組外積
    kronecker:數組的Kronecker積
    apply:對數組的某些維應用函數
    tapply:對“不規則”數組應用函數
    sweep:計算數組的概括統計量
    aggregate:計算數據子集的概括統計量
    scale:矩陣標准化
    matplot:對矩陣各列繪圖
    cor:相關陣或協差陣
    Contrast:對照矩陣
    row:矩陣的行下標集
    col:求列下標集

    四、線性代數
    solve:解線性方程組或求逆
    eigen:矩陣的特征值分解
    svd:矩陣的奇異值分解
    backsolve:解上三角或下三角方程組
    chol:Choleski分解
    qr:矩陣的QR分解
    chol2inv:由Choleski分解求逆

    五、邏輯運算
    <,>,<=,>=,==,!=:比較運算符
    !,&,&&,|,||,xor():邏輯運算符
    logical:生成邏輯向量
    all,any:邏輯向量都為真或存在真
    ifelse():二者擇一
    match,%in%:查找
    unique:找出互不相同的元素
    which:找到真值下標集合
    duplicated:找到重復元素

    六、優化及求根
    optimize,uniroot,polyroot:一維優化與求根

     


    程序設計

    一、控制結構
    if,else,ifelse,switch:分支
    for,while,repeat,break,next:循環
    apply,lapply,sapply,tapply,sweep:替代循環的函數。

    二、函數方面
    function:函數定義
    source:調用文件
    call:函數調用
    .C,.Fortran:調用C或者Fortran子程序的動態鏈接庫
    Recall:遞歸調用
    browser,debug,trace,traceback:程序調試
    options:指定系統參數
    missing:判斷虛參是否有對應實參
    nargs:參數個數 stop:終止函數執行
    on.exit:指定退出時執行
    eval,expression:表達式計算
    system.time:表達式計算計時
    invisible:使變量不顯示
    menu:選擇菜單(字符列表菜單)
    其它與函數有關的還有:delay,delete.response,deparse,do.call,dput,environment ,,formals,format.info,interactive,
    is.finite,is.function,is.language,is.recursive ,match.arg,match.call,match.fun,model.extract,name,parse,substitute,sys.parent ,warning,machine

    三、輸入輸出
    cat,print:顯示對象
    sink:輸出轉向到指定文件
    dump,save,dput,write:輸出對象
    scan,read.table,load,dget:讀入

    四、工作環境
    ls,objects:顯示對象列表
    rm, remove:刪除對象
    q,quit:退出系統
    .First,.Last:初始運行函數與退出運行函數。
    options:系統選項
    ?,help,help.start,apropos:幫助功能
    data:列出數據集

     


    統計分析

    一、統計分布
    每一種分布有四個函數:d――density(密度函數),p――分布函數,q――分位數函數,r――隨機數函數。
    比如,正態分布的這四個函數為dnorm,pnorm,qnorm,rnorm
    列出各分布后綴,前面加前綴d、p、q或r就構成函數名:
    norm:正態
    t:t分布
    f:F分布
    chisq:卡方(包括非中心)
    unif:均勻
    exp:指數
    weibull:威布爾
    gamma:伽瑪
    beta:貝塔
    lnorm:對數正態
    logis:邏輯分布
    cauchy:柯西
    binom:二項分布
    geom:幾何分布
    hyper:超幾何
    nbinom:負二項
    pois:泊松
    signrank:符號秩,
    wilcox:秩和
    tukey:學生化極差

    二、簡單統計量
    sum, mean, var, sd, min, max, range, median, IQR(四分位間距)等為統計量
    sort,order,rank與排序有關,其它還有ave,fivenum,mad,quantile,stem等

    三、統計檢驗
    R中已實現的有chisq.test,prop.test,t.test

    四、多元分析
    cor,cov.wt,var:協方差陣及相關陣計算
    biplot,biplot.princomp:多元數據biplot圖
    cancor:典則相關
    princomp:主成分分析
    hclust:譜系聚類
    kmeans:k-均值聚類
    cmdscale:經典多維標度 其它有dist,mahalanobis,cov.rob

    五、時間序列
    ts:時間序列對象
    diff:計算差分
    time:時間序列的采樣時間
    window:時間窗

    六、統計模型
    lm,glm,aov:線性模型、廣義線性模型、方差分析

     

     

    文件操作

    一、文件執行:
    在用R生成一個PDF文檔后,如果想去打開它,你可能會在文件夾里找到再點開。再或者我們想調用系統中的其它程序來做點事情,可能要打開cmd敲點命令。實際上這都可以在R內部完成。舉例來說用pandoc轉換na.md成docx再打開它。
    system('pandoc d:\\rspace\\na.md -o d:\\rspace\\na.docx')
    shell.exec('d:\\rspace\\na.docx')


    二、 網絡瀏覽:
    browseURL:瀏覽某個指定的網頁
    download.file:下載網絡文件到本地

    三、文件操作
    dir.create:新建一個文件夾
    list.dirs:顯示目錄下的文件夾
    list.files:顯示目錄下的文檔
    file.create:文檔創建
    file.exists:判斷文檔是否存在
    file.remove:文檔刪除
    file.rename:重命名
    file.append:文檔添加
    file.copy:文檔復制
    file.symlink(from, to)
    file.show:顯示文檔內容
    file.info:顯示文檔信息
    file.edit:編輯文檔
    zip: 壓縮文件
    unzip: 解壓縮文件

    四、 運算進度條
    在一個大循環運算時,如果可以看到目前的進度是比較方便的,txtProgressBar和setTxtProgressBar函數可以幫助做到這一點


     

  7. 2015-10-24
  8.  

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM