R语言学习 – 基础概念和矩阵操作

R基本语法

获取帮助文档,查看命令或函数的使用方法、事例或适用范围

  1. >>> ?command
  2. >>> ??command #深度搜索或模糊搜索此命令
  3.  
  4. >>> example(command) #得到命令的例子

R中的变量

  1. > # 数字变量
  2. > a <- 10
  3. > a
  4. [1] 10
  5. >
  6. > # 字符串变量
  7. > a <- "abc"
  8. > a
  9. [1] "abc"
  10. >
  11. > # 逻辑变量
  12. > a <- TRUE
  13. >
  14. > a
  15. [1] TRUE
  16. >
  17. > b <- T
  18. >
  19. > b
  20. [1] TRUE
  21. >
  22. > d <- FALSE
  23. >
  24. > d
  25. [1] FALSE
  26. > # 向量
  27. >
  28. > a <- vector(mode="logical", length=5)
  29. > a
  30. [1] FALSE FALSE FALSE FALSE FALSE
  31. >
  32. > a <- c(1,2,3,4)
  33. # 判断一个变量是不是vector
  34. > is.vector(a)
  35. [1] TRUE
  36. >
  37. > # 矩阵
  38. >
  39. > a <- matrix(1:20,nrow=5,ncol=4,byrow=T)
  40. > a
  41.     [,1] [,2] [,3] [,4]
  42. [1,]    1    2    3    4
  43. [2,]    5    6    7    8
  44. [3,]    9   10   11   12
  45. [4,]   13   14   15   16
  46. [5,]   17   18   19   20
  47. >
  48. > is.matrix(a)
  49. [1] TRUE
  50. >
  51. > dim(a) #查看或设置数组的维度向量
  52. [1] 5 4
  53. >
  54. > # 错误的用法
  55. > dim(a) <- c(4,4)
  56. Error in dim(a) <- c(4, 4) : dims [product 16]与对象长度[20]不匹配
  57. >
  58. > # 正确的用法
  59. > a <- 1:20
  60. > dim(a) <- c(5,4) #转换向量为矩阵
  61. > a
  62.     [,1] [,2] [,3] [,4]
  63. [1,]    1    6   11   16
  64. [2,]    2    7   12   17
  65. [3,]    3    8   13   18
  66. [4,]    4    9   14   19
  67. [5,]    5   10   15   20
  68. >
  69. > print(paste("矩阵a的行数", nrow(a)))
  70. [1] "矩阵a的行数 5"
  71. > print(paste("矩阵a的列数", ncol(a)))
  72. [1] "矩阵a的列数 4"
  73. >
  74. > #查看或设置行列名
  75. > rownames(a)
  76. NULL
  77. > rownames(a) <- c('a','b','c','d','e')
  78. > a
  79.  [,1] [,2] [,3] [,4]
  80. a    1    6   11   16
  81. b    2    7   12   17
  82. c    3    8   13   18
  83. d    4    9   14   19
  84. e    5   10   15   20
  85.  
  86. # R中获取一系列的字母
  87. > letters[1:4]
  88. [1] "a" "b" "c" "d"
  89. > colnames(a) <- letters[1:4]
  90. > a
  91.  a  b  c  d
  92. a 1  6 11 16
  93. b 2  7 12 17
  94. c 3  8 13 18
  95. d 4  9 14 19
  96. e 5 10 15 20
  97. >
  98.  
  99. # is系列和as系列函数用来判断变量的属性和转换变量的属性
  100. # 矩阵转换为data.frame
  101. > is.character(a)
  102. [1] FALSE
  103. > is.numeric(a)
  104. [1] TRUE
  105. > is.matrix(a)
  106. [1] TRUE
  107. > is.data.frame(a)
  108. [1] FALSE
  109. > is.data.frame(as.data.frame(a))
  110. [1] TRUE

R中矩阵运算

  1. # 数据产生
  2. # rnorm(n, mean = 0, sd = 1) 正态分布的随机数
  3. # runif(n, min = 0, max = 1) 平均分布的随机数
  4. # rep(1,5) 把1重复5次
  5. # scale(1:5) 标准化数据
  6. > a <- c(rnorm(5), rnorm(5,1), runif(5), runif(5,-1,1), 1:5, rep(0,5), c(2,10,11,13,4), scale(1:5)[1:5])
  7. > a
  8. [1] -0.41253556  0.12192929 -0.47635888 -0.97171653  1.09162243  1.87789657
  9. [7] -0.11717937  2.92953522  1.33836620 -0.03269026  0.87540920  0.13005744
  10. [13]  0.11900686  0.76663940  0.28407356 -0.91251181  0.17997973  0.50452258
  11. [19]  0.25961316 -0.58052230  1.00000000  2.00000000  3.00000000  4.00000000
  12. [25]  5.00000000  0.00000000  0.00000000  0.00000000  0.00000000  0.00000000
  13. [31]  2.00000000 10.00000000 11.00000000 13.00000000  4.00000000 -1.26491106
  14. [37] -0.63245553  0.00000000  0.63245553  1.26491106
  15. > a <- matrix(a, ncol=5, byrow=T)
  16. > a
  17.           [,1]       [,2]       [,3]       [,4]        [,5]
  18. [1,] -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243
  19. [2,]  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026
  20. [3,]  0.8754092  0.1300574  0.1190069  0.7666394  0.28407356
  21. [4,] -0.9125118  0.1799797  0.5045226  0.2596132 -0.58052230
  22. [5,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000
  23. [6,]  0.0000000  0.0000000  0.0000000  0.0000000  0.00000000
  24. [7,]  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000
  25. [8,] -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106
  26.  
  27. # 求行的加和
  28. > rowSums(a)
  29. [1] -0.6470593  5.9959284  2.1751865 -0.5489186 15.0000000  0.0000000 40.0000000
  30. [8]  0.0000000
  31.  
  32. ## 注意检查括号的配对
  33. > a <- a[rowSums(abs(a)!=0,]
  34. 错误: 意外的']' in "a <- a[rowSums(abs(a)!=0,]"
  35.  
  36. # 去除全部为0的行
  37. > a <- a[rowSums(abs(a))!=0,]
  38.  
  39. # 另外一种方式去除全部为0的行
  40. > #a[rowSums(a==0)<ncol(a),]
  41. > a
  42.           [,1]       [,2]       [,3]       [,4]        [,5]
  43. [1,] -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243
  44. [2,]  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026
  45. [3,]  0.8754092  0.1300574  0.1190069  0.7666394  0.28407356
  46. [4,] -0.9125118  0.1799797  0.5045226  0.2596132 -0.58052230
  47. [5,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000
  48. [6,]  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000
  49. [7,] -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106
  50.  
  51. # 矩阵运算,R默认针对整个数据进行常见运算
  52.  
  53. # 所有值都乘以2
  54.  
  55. > a * 2
  56.           [,1]       [,2]       [,3]       [,4]        [,5]
  57. [1,] -0.8250711  0.2438586 -0.9527178 -1.9434331  2.18324487
  58. [2,]  3.7557931 -0.2343587  5.8590704  2.6767324 -0.06538051
  59. [3,]  1.7508184  0.2601149  0.2380137  1.5332788  0.56814712
  60. [4,] -1.8250236  0.3599595  1.0090452  0.5192263 -1.16104460
  61. [5,]  2.0000000  4.0000000  6.0000000  8.0000000 10.00000000
  62. [6,]  4.0000000 20.0000000 22.0000000 26.0000000  8.00000000
  63. [7,] -2.5298221 -1.2649111  0.0000000  1.2649111  2.52982213
  64.  
  65. # 所有值取绝对值,再取对数 (取对数前一般加一个数避免对0或负值取对数)
  66. > log2(abs(a)+1)
  67.          [,1]      [,2]      [,3]      [,4]      [,5]
  68. [1,] 0.4982872 0.1659818 0.5620435 0.9794522 1.0646224
  69. [2,] 1.5250147 0.1598608 1.9743587 1.2255009 0.0464076
  70. [3,] 0.9072054 0.1763961 0.1622189 0.8210076 0.3607278
  71. [4,] 0.9354687 0.2387621 0.5893058 0.3329807 0.6604014
  72. [5,] 1.0000000 1.5849625 2.0000000 2.3219281 2.5849625
  73. [6,] 1.5849625 3.4594316 3.5849625 3.8073549 2.3219281
  74. [7,] 1.1794544 0.7070437 0.0000000 0.7070437 1.1794544
  75.  
  76. # 取出最大值、最小值、行数、列数
  77. > max(a)
  78. [1] 13
  79. > min(a)
  80. [1] -1.264911
  81. > nrow(a)
  82. [1] 7
  83. > ncol(a)
  84. [1] 5
  85.  
  86. # 增加一列或一行
  87. # cbind: column bind
  88. > cbind(a, 1:7)
  89.           [,1]       [,2]       [,3]       [,4]        [,5] [,6]
  90. [1,] -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243    1
  91. [2,]  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026    2
  92. [3,]  0.8754092  0.1300574  0.1190069  0.7666394  0.28407356    3
  93. [4,] -0.9125118  0.1799797  0.5045226  0.2596132 -0.58052230    4
  94. [5,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000    5
  95. [6,]  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000    6
  96. [7,] -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106    7
  97. > cbind(a, seven=1:7)
  98.                                                             seven
  99. [1,] -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243     1
  100. [2,]  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026     2
  101. [3,]  0.8754092  0.1300574  0.1190069  0.7666394  0.28407356     3
  102. [4,] -0.9125118  0.1799797  0.5045226  0.2596132 -0.58052230     4
  103. [5,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000     5
  104. [6,]  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000     6
  105. [7,] -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106     7
  106.  
  107. # rbind: row bind
  108. > rbind(a,1:5)
  109.           [,1]       [,2]       [,3]       [,4]        [,5]
  110. [1,] -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243
  111. [2,]  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026
  112. [3,]  0.8754092  0.1300574  0.1190069  0.7666394  0.28407356
  113. [4,] -0.9125118  0.1799797  0.5045226  0.2596132 -0.58052230
  114. [5,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000
  115. [6,]  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000
  116. [7,] -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106
  117. [8,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000
  118.  
  119. # 计算每一行的mad (中值绝对偏差,一般认为比方差的鲁棒性更强,更少受异常值的影响,更能反映数据间的差异)
  120. > apply(a,1,mad)
  121. [1] 0.7923976 2.0327283 0.2447279 0.4811672 1.4826000 4.4478000 0.9376786
  122.  
  123. # 计算每一行的var (方差)
  124. # apply表示对数据(第一个参数)的每一行 (第二个参数赋值为1) 或每一列 (2)操作
  125. #      最后返回一个列表
  126. > apply(a,1,var)
  127. [1]  0.6160264  1.6811161  0.1298913  0.3659391  2.5000000 22.5000000  1.0000000
  128.  
  129. # 计算每一列的平均值
  130. > apply(a,2,mean)
  131. [1] 0.4519068 1.6689045 2.4395294 2.7179083 1.5753421
  132.  
  133. # 取出中值绝对偏差大于0.5的行
  134. > b = a[apply(a,1,mad)>0.5,]
  135. > b
  136.           [,1]       [,2]       [,3]       [,4]        [,5]
  137. [1,] -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243
  138. [2,]  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026
  139. [3,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000
  140. [4,]  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000
  141. [5,] -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106
  142.  
  143. # 矩阵按照mad的大小降序排列
  144. > c = b[order(apply(b,1,mad), decreasing=T),]
  145. > c
  146.           [,1]       [,2]       [,3]       [,4]        [,5]
  147. [1,]  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000
  148. [2,]  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026
  149. [3,]  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000
  150. [4,] -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106
  151. [5,] -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243
  152.  
  153. > rownames(c) <- paste('Gene', letters[1:5], sep="_")
  154. > colnames(c) <- toupper(letters[1:5])
  155. > c
  156.                A          B          C          D           E
  157. Gene_a  2.0000000 10.0000000 11.0000000 13.0000000  4.00000000
  158. Gene_b  1.8778966 -0.1171794  2.9295352  1.3383662 -0.03269026
  159. Gene_c  1.0000000  2.0000000  3.0000000  4.0000000  5.00000000
  160. Gene_d -1.2649111 -0.6324555  0.0000000  0.6324555  1.26491106
  161. Gene_e -0.4125356  0.1219293 -0.4763589 -0.9717165  1.09162243
  162.  
  163. # 矩阵转置
  164. > expr = t(c)
  165. > expr
  166.  Gene_a      Gene_b Gene_c     Gene_d     Gene_e
  167. A      2  1.87789657      1 -1.2649111 -0.4125356
  168. B     10 -0.11717937      2 -0.6324555  0.1219293
  169. C     11  2.92953522      3  0.0000000 -0.4763589
  170. D     13  1.33836620      4  0.6324555 -0.9717165
  171. E      4 -0.03269026      5  1.2649111  1.0916224
  172.  
  173. # 矩阵值的替换
  174. > expr2 = expr
  175. > expr2[expr2<0] = 0
  176. > expr2
  177.  Gene_a   Gene_b Gene_c    Gene_d    Gene_e
  178. A      2 1.877897      1 0.0000000 0.0000000
  179. B     10 0.000000      2 0.0000000 0.1219293
  180. C     11 2.929535      3 0.0000000 0.0000000
  181. D     13 1.338366      4 0.6324555 0.0000000
  182. E      4 0.000000      5 1.2649111 1.0916224
  183.  
  184. # 矩阵中只针对某一列替换
  185. # expr2是个矩阵不是数据框,不能使用列名字索引
  186. > expr2[expr2$Gene_b<1, "Gene_b"] <- 1
  187. Error in expr2$Gene_b : $ operator is invalid for atomic vectors
  188. # str是一个最为常用、好用的查看变量信息的工具,尤其是对特别复杂的变量,
  189. #    可以看清其层级结构,便于提取数据
  190. > str(expr2)
  191. num [1:5, 1:5] 2 10 11 13 4 ...
  192. - attr(*, "dimnames")=List of 2
  193.  ..$ : chr [1:5] "A" "B" "C" "D" ...
  194.  ..$ : chr [1:5] "Gene_a" "Gene_b" "Gene_c" "Gene_d" ...
  195.  
  196. # 转换为数据库,再进行相应的操作
  197. > expr2 <- as.data.frame(expr2)
  198. > str(expr2)
  199. 'data.frame':    5 obs. of  5 variables:
  200. $ Gene_a: num  2 10 11 13 4
  201. $ Gene_b: num  1.88 1 2.93 1.34 1
  202. $ Gene_c: num  1 2 3 4 5
  203. $ Gene_d: num  0 0 0 0.632 1.265
  204. $ Gene_e: num  0 0.122 0 0 1.092
  205. > expr2[expr2$Gene_b<1, "Gene_b"] <- 1
  206. > expr2
  207. > expr2
  208.  Gene_a   Gene_b Gene_c    Gene_d    Gene_e
  209. A      2 1.877897      1 0.0000000 0.0000000
  210. B     10 1.000000      2 0.0000000 0.1219293
  211. C     11 2.929535      3 0.0000000 0.0000000
  212. D     13 1.338366      4 0.6324555 0.0000000
  213. E      4 1.000000      5 1.2649111 1.0916224

 

R中矩阵筛选合并

  1. # 读入样品信息
  2. > sampleInfo = "Samp;Group;Genotype
  3. + A;Control;WT
  4. + B;Control;WT
  5. + D;Treatment;Mutant
  6. + C;Treatment;Mutant
  7. + E;Treatment;WT
  8. + F;Treatment;WT"
  9. > phenoData = read.table(text=sampleInfo,sep=";", header=T, row.names=1, quote="")
  10. > phenoData
  11.      Group Genotype
  12. A   Control       WT
  13. B   Control       WT
  14. D Treatment   Mutant
  15. C Treatment   Mutant
  16. E Treatment       WT
  17. F Treatment       WT
  18.  
  19. # 把样品信息按照基因表达矩阵中的样品信息排序,并只保留有基因表达信息的样品
  20. # match() returns a vector of the positions of (first) matches of
  21.          its first argument in its second.
  22. > phenoData[match(rownames(expr), rownames(phenoData)),]
  23.      Group Genotype
  24. A   Control       WT
  25. B   Control       WT
  26. C Treatment   Mutant
  27. D Treatment   Mutant
  28. E Treatment       WT
  29.  
  30. # ‘%in%’ is a more intuitive interface as a binary operator, which
  31.     returns a logical vector indicating if there is a match or not for
  32.     its left operand.
  33.  
  34. # 注意顺序,%in%比match更好理解一些
  35. > phenoData = phenoData[rownames(phenoData) %in% rownames(expr),]
  36. > phenoData
  37.      Group Genotype
  38. A   Control       WT
  39. B   Control       WT
  40. C Treatment   Mutant
  41. D Treatment   Mutant
  42. E Treatment       WT
  43.  
  44. # 合并矩阵
  45. # by=0 表示按照行的名字排序
  46. # by=columnname 表示按照共有的某一列排序
  47. # 合并后多出了新的一列Row.names
  48. > merge_data = merge(expr, phenoData, by=0, all.x=T)
  49. > merge_data
  50.  Row.names Gene_a      Gene_b Gene_c     Gene_d     Gene_e     Group Genotype
  51. 1         A      2  1.87789657      1 -1.2649111 -0.4125356   Control       WT
  52. 2         B     10 -0.11717937      2 -0.6324555  0.1219293   Control       WT
  53. 3         C     11  2.92953522      3  0.0000000 -0.4763589 Treatment   Mutant
  54. 4         D     13  1.33836620      4  0.6324555 -0.9717165 Treatment   Mutant
  55. 5         E      4 -0.03269026      5  1.2649111  1.0916224 Treatment       WT
  56.  
  57. > rownames(merge_data) <- merge_data$Row.names
  58. > merge_data
  59.  Row.names Gene_a      Gene_b Gene_c     Gene_d     Gene_e     Group Genotype
  60. A         A      2  1.87789657      1 -1.2649111 -0.4125356   Control       WT
  61. B         B     10 -0.11717937      2 -0.6324555  0.1219293   Control       WT
  62. C         C     11  2.92953522      3  0.0000000 -0.4763589 Treatment   Mutant
  63. D         D     13  1.33836620      4  0.6324555 -0.9717165 Treatment   Mutant
  64. E         E      4 -0.03269026      5  1.2649111  1.0916224 Treatment       WT
  65.  
  66. # 去除一列;-1表示去除第一列
  67. > merge_data = merge_data[,-1]
  68. > merge_data
  69.  Gene_a      Gene_b Gene_c     Gene_d     Gene_e     Group Genotype
  70. A      2  1.87789657      1 -1.2649111 -0.4125356   Control       WT
  71. B     10 -0.11717937      2 -0.6324555  0.1219293   Control       WT
  72. C     11  2.92953522      3  0.0000000 -0.4763589 Treatment   Mutant
  73. D     13  1.33836620      4  0.6324555 -0.9717165 Treatment   Mutant
  74. E      4 -0.03269026      5  1.2649111  1.0916224 Treatment       WT
  75.  
  76. # 提取出所有的数值列
  77. > merge_data[sapply(merge_data, is.numeric)]
  78.  Gene_a      Gene_b Gene_c     Gene_d     Gene_e
  79. A      2  1.87789657      1 -1.2649111 -0.4125356
  80. B     10 -0.11717937      2 -0.6324555  0.1219293
  81. C     11  2.92953522      3  0.0000000 -0.4763589
  82. D     13  1.33836620      4  0.6324555 -0.9717165
  83. E      4 -0.03269026      5  1.2649111  1.0916224

 

str的应用

str:  Compactly display the internal structure of an R object, a     diagnostic function and an alternative to ‘summary (and to some     extent, ‘dput’).  Ideally, only one line for each ‘basic’     structure is displayed.  It is especially well suited to compactly     display the (abbreviated) contents of (possibly nested) lists.     The idea is to give reasonable output for any R object.  It     calls ‘args’ for (non-primitive) function objects.

str用来告诉结果的构成方式,对于不少Bioconductor的包,或者复杂的R函数的输出,都是一堆列表的嵌套,str(complex_result)会输出每个列表的名字,方便提取对应的信息。

  1. # str的一个应用例子
  2. > str(list(a = "A", L = as.list(1:100)), list.len = 9)
  3. List of 2
  4. $ a: chr "A"
  5. $ L:List of 100
  6.  ..$ : int 1
  7.  ..$ : int 2
  8.  ..$ : int 3
  9.  ..$ : int 4
  10.  ..$ : int 5
  11.  ..$ : int 6
  12.  ..$ : int 7
  13.  ..$ : int 8
  14.  ..$ : int 9
  15.  .. [list output truncated]
  16.  
  17. # 利用str查看pca的结果,具体的PCA应用查看http://mp.weixin.qq.com/s/sRElBMkyR9rGa4TQp9KjNQ
  18.  
  19. > pca_result <- prcomp(expr)
  20. > pca_result
  21. Standard deviations:
  22. [1] 4.769900e+00 1.790861e+00 1.072560e+00 1.578391e-01 2.752128e-16
  23.  
  24. Rotation:
  25.               PC1         PC2          PC3         PC4         PC5
  26. Gene_a  0.99422750 -0.02965529  0.078809521  0.01444655  0.06490461
  27. Gene_b  0.04824368 -0.44384942 -0.885305329  0.03127940  0.12619948
  28. Gene_c  0.08258192  0.81118590 -0.451360828  0.05440417 -0.35842886
  29. Gene_d -0.01936958  0.30237826 -0.079325524 -0.66399283  0.67897952
  30. Gene_e -0.04460135  0.22948437 -0.002097256  0.74496081  0.62480128
  31. > str(pca_result)
  32. List of 5
  33. $ sdev    : num [1:5] 4.77 1.79 1.07 1.58e-01 2.75e-16
  34. $ rotation: num [1:5, 1:5] 0.9942 0.0482 0.0826 -0.0194 -0.0446 ...
  35.  ..- attr(*, "dimnames")=List of 2
  36.  .. ..$ : chr [1:5] "Gene_a" "Gene_b" "Gene_c" "Gene_d" ...
  37.  .. ..$ : chr [1:5] "PC1" "PC2" "PC3" "PC4" ...
  38. $ center  : Named num [1:5] 8 1.229 3 0.379 0.243
  39.  ..- attr(*, "names")= chr [1:5] "Gene_a" "Gene_b" "Gene_c" "Gene_d" ...
  40. $ scale   : logi FALSE
  41. $ x       : num [1:5, 1:5] -6.08 1.86 3.08 5.06 -3.93 ...
  42.  ..- attr(*, "dimnames")=List of 2
  43.  .. ..$ : chr [1:5] "A" "B" "C" "D" ...
  44.  .. ..$ : chr [1:5] "PC1" "PC2" "PC3" "PC4" ...
  45. - attr(*, "class")= chr "prcomp"
  46.  
  47. # 取出每个主成分解释的差异
  48. > pca_result$sdev
  49. [1] 4.769900e+00 1.790861e+00 1.072560e+00 1.578391e-01 2.752128e-16

R的包管理

  1. # 什么时候需要安装包
  2. > library('unExistedPackage')
  3. Error in library("unExistedPackage") :
  4.  不存在叫‘unExistedPackage’这个名字的程辑包
  5.  
  6. # 安装包
  7. > install.packages("package_name")
  8. # 指定安装来源
  9. > install.packages("package_name", repo="http://cran.us.r-project.org")
  10.  
  11. # 安装Bioconductor的包
  12. > source('https://bioconductor.org/biocLite.R')
  13. > biocLite('BiocInstaller')
  14. > biocLite(c("RUVSeq","pcaMethods"))
  15.  
  16. # 安装Github的R包
  17. > install.packages("devtools")
  18. > devtools::install_github("JustinaZ/pcaReduce")
  19.  
  20. # 手动安装, 首先下载包的源文件(压缩版就可),然后在终端运行下面的命令。
  21. ct@ehbio:~$ R CMD INSTALL package.tar.gz
  22.  
  23. # 移除包
  24. >remove.packages("package_name")
  25.  
  26. # 查看所有安装的包
  27. >library()
  28.  
  29. # 查看特定安装包的版本
  30. > installed.packages()[c("DESeq2"), c("Package", "Version")]
  31. Package  Version
  32. "DESeq2" "1.14.1"
  33. >
  34.  
  35. # 查看默认安装包的位置
  36. >.libPaths()
  37.  
  38. # 调用安装的包
  39. >library(package_name)
  40.  
  41. #devtools::install_github("hms-dbmi/scde", build_vignettes = FALSE)
  42. #install.packages(c("mvoutlier","ROCR"))
  43. #biocLite(c("RUVSeq","pcaMethods","SC3","TSCAN","monocle","MultiAssayExperiment","SummarizedExperiment"))
  44. #devtools::install_github("satijalab/seurat")

发表评论

匿名网友

拖动滑块以完成验证
加载失败