R 語言學習筆記(一)

  1. c:向量 x1=c(1,2,3,4) x2=c(1:100)
  2. length:查看向量的長度 length(x1)
  3. mode:查看數據類型mode(x1) numeric
  4. rbind: 將向量以行的格式合併

    x1=(1,2,3,4,5);
    x2=(2,3,4,5,6);
    rbind(x1,x2)
    1,2,3,4,5
    2,3,4,5,6
    
  5. cbind:將向量以列的形式合併

    x1=(1,2,3,4,5);
    x2=(2,3,4,5,6);
    cbind(x1,x2)
    1 2
    2 3
    3 4
    4 5
    5 6
    
  6. mean:求向量平均值

  7. sum:求和
  8. max:求最大值
  9. min:求最小值
  10. var:求方差
  11. sd:求標準差
  12. prod:連乘
  13. help:查詢幫助
  14. 關於向量的一些操作

    • 對向量的加減乘除就是對每個元素的加減乘除
    • a[1]:取出第一個元素
    • a[-(1:5)]:不顯示1~5個元素
    • a[c(2,4,7)]:顯示向量2,4,7個元素
    • a[a<20]:顯示所有小於20的元素
  15. seq(5,20):以5位首項,最後一項爲20,1爲公差。
    seq(5,20,by=2):公差爲2
    seq(5,20,length=10):一共10項
  16. letters:字母向量,前26項放置26個小寫字母。
  17. which:

            which.max(a)返回a中最大值元素的下標
            which.min(a)
            which(a==2)
            a[which(a==2)]
            which(a>5)
            a[which(a>5)]
    
  18. rev:顛倒一個向量

  19. sort:排序一個向量,從小到大
  20. matrix:沒有特殊指定按列放置

    > a1=c(1:12)
    > matrix(a1,nrow=3,ncol=4)
         [,1] [,2] [,3] [,4]
    [1,]    1    4    7   10
    [2,]    2    5    8   11
    [3,]    3    6    9   12
    > matrix(a1,nrow=4,ncol=3)
         [,1] [,2] [,3]
    [1,]    1    5    9
    [2,]    2    6   10
    [3,]    3    7   11
    [4,]    4    8   12
    > matrix(a1,nrow=4,ncol=3,byrow = T)
         [,1] [,2] [,3]
    [1,]    1    2    3
    [2,]    4    5    6
    [3,]    7    8    9
    [4,]   10   11   12
    
  21. 矩陣轉置

    > a=matrix(a1,nrow=4,ncol=3,byrow = T)
    > a
         [,1] [,2] [,3]
    [1,]    1    2    3
    [2,]    4    5    6
    [3,]    7    8    9
    [4,]   10   11   12
    > t(a)
         [,1] [,2] [,3] [,4]
    [1,]    1    4    7   10
    [2,]    2    5    8   11
    [3,]    3    6    9   12
    
  22. 矩陣加減:對應位置元素的操作
  23. 矩陣相乘:

     a*b:對應位置元素相乘
     a%*%b:矩陣相乘
     diag(a):返回矩陣對角線
     diag(a):如果a爲向量,以該向量爲對角線構造矩陣
     diag(4):產生4階單位矩陣
    
  24. rnorm():按照正態分佈產生隨機數

     rnorm(16):產生16個隨機數
    
  25. solve():求逆矩陣,解方程組

    > a=matrix(rnorm(16),4,4)
    > a
                [,1]       [,2]       [,3]       [,4]
    [1,] -1.05965689  0.6143960 -0.8294148 -1.3061685
    [2,] -1.60431219 -1.2030678  0.2292120 -1.4342218
    [3,]  0.79135067 -0.3404548 -0.8149929 -0.8628479
    [4,]  0.06815653 -1.1712486 -0.9934455  1.7037992
    > solve(a)
                 [,1]       [,2]       [,3]       [,4]
    [1,] -0.341489771 -0.1637338  0.4876024 -0.1526864
    [2,]  0.374155498 -0.3890995 -0.2724248 -0.1786631
    [3,] -0.478976543  0.1730090 -0.2601989 -0.3533297
    [4,] -0.008412508 -0.1600527 -0.3584953  0.2641942
    
    解方程組
    > b=c(1:4)
    > solve(a,b)
    [1]  0.1831044 -1.9359705 -2.3268738 -0.3472269
    
  26. eigen:求矩陣特徵值

    > a=diag(4)+1
    > a
         [,1] [,2] [,3] [,4]
    [1,]    2    1    1    1
    [2,]    1    2    1    1
    [3,]    1    1    2    1
    [4,]    1    1    1    2
    > a.e=eigen(a,symmetric = T)
    > a.e
    $values
    [1] 5 1 1 1
    
    $vectors
         [,1]       [,2]       [,3]       [,4]
    [1,] -0.5  0.8660254  0.0000000  0.0000000
    [2,] -0.5 -0.2886751 -0.5773503 -0.5773503
    [3,] -0.5 -0.2886751 -0.2113249  0.7886751
    [4,] -0.5 -0.2886751  0.7886751 -0.2113249
    
  27. is.vector():判斷變量是否爲向量

  28. is.array():判斷是否爲數組,數組是有維度的向量。矩陣可以看作二維數組。

    > x=c(1:6)
    > x
    [1] 1 2 3 4 5 6
    > is.vector(x)
    [1] TRUE
    > is.array(x)
    [1] FALSE
    > dim(x)<-c(2,3)
    > x
         [,1] [,2] [,3]
    [1,]    1    3    5
    [2,]    2    4    6
    > is.vector(x)
    [1] FALSE
    > is.array(x)
    [1] TRUE
    
  29. data.frame:數據框,二維表單。矩陣和數組中,每個元素必須爲數值。數據框可以爲任意類型。

    > x1=c(1:10)
    > y1=c(101,110)
    > x=data.frame(x1,y1)
    > x
       x1  y1
    1   1 101
    2   2 110
    3   3 101
    4   4 110
    5   5 101
    6   6 110
    7   7 101
    8   8 110
    9   9 101
    10 10 110
    > x=data.frame('col1'=x1,'col2'=y1)
    > x
       col1 col2
    1     1  101
    2     2  110
    3     3  101
    4     4  110
    5     5  101
    6     6  110
    7     7  101
    8     8  110
    9     9  101
    10   10  110
    
  30. plot:畫圖

  31. read.table:.prn以空格分割的文件格式
  32. read.csv:讀入csv文件
  33. 安裝RODBC,再通過ODBC讀
  34. for語句:

    > a=1 #init a
    > for(i in 1:59) a[i]=i*2+3
    > a
     [1]   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43
    [21]  45  47  49  51  53  55  57  59  61  63  65  67  69  71  73  75  77  79  81  83
    [41]  85  87  89  91  93  95  97  99 101 103 105 107 109 111 113 115 117 119 121
    
  35. while語句:

    > a=5
    > i=1
    > while(a[i]<121){i=i+1;a[i]=a[i-1]+2}
    > a
     [1]   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43
    [21]  45  47  49  51  53  55  57  59  61  63  65  67  69  71  73  75  77  79  81  83
    [41]  85  87  89  91  93  95  97  99 101 103 105 107 109 111 113 115 117 119 121
    
  36. source(‘x.r’):運行R腳本

  37. 分佈函數:

     正態分佈函數rnorm()
     泊松分佈函數rpois()
     指數分佈函數rexp()
     Gamma分佈函數rgamma()
     均勻分佈函數runif()
     二項分佈函數rbinom()
     幾何分佈函數rgeom()
    
    > x<-round(runif(10,min=80,max=100))
    > x
     [1] 95 94 82 90 83 85 85 84 80 99
    
    > x<-round(rnorm(10,mean=80,sd=7))
    > x
     [1] 72 86 77 85 86 75 77 93 78 82
    
  38. 存儲數據:write.table()

  39. colMeans:對列求平均值

     colMeans(x)[c('x1','x2','x3')]
     #在指定的3列上求均值
    
  40. apply:

     apply(x,2,mean)
     #在x的列上求均值
     apply(x[c('x1','x2','x3')],1,sum)
     #3列元素,每行求和
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章