查看原文
其他

圈圈 2018-06-01

R语言基础系列前情提要:

Vectorized Operations

R中许多操作可以通过向量化变得更加简洁。

例如将两个向量加在一起:

  1. > x <- 1:4

  2. > y <- 6:9

  3. > z <- x + y

  4. > z

  5. [1]  7  9 11 13

相比写循环更加简便:

  1. > x <- 1:4

  2. > y <- 6:9

  3. > w <- numeric(length(x))

  4. > for(i in seq_along(x)) {

  5. + w[i] <- x[i] + y[i]

  6. + }

  7. > w

  8. [1]  5  7  9 11

另外还可以有其他运算:

  1. > x <- 1:4

  2. > y <- 6:9

  3. > x - y

  4. [1] -5 -5 -5 -5

  5. > x * y

  6. [1]  6 14 24 36

  7. > x / y

  8. [1] 0.1666667 0.2857143 0.3750000 0.4444444

类似地,对矩阵也可以有相似的操作:

注: x*yx/y 是两个矩阵相应元素之间的乘除, x%*%y 是矩阵乘法的符号。

  1. > x <- matrix(1:4, 2, 2)

  2. > y <- matrix(rep(10, 4), 2, 2)

  3. > x

  4.     [,1] [,2]

  5. [1,]    1    3

  6. [2,]    2    4

  7. > y

  8.     [,1] [,2]

  9. [1,]   10   10

  10. [2,]   10   10

  11. >

  12. > ## element-wise multiplication

  13. > x * y      

  14.     [,1] [,2]

  15. [1,]   10   30

  16. [2,]   20   40

  17. >

  18. > ## element-wise division

  19. > x / y      

  20.     [,1] [,2]

  21. [1,]  0.1  0.3

  22. [2,]  0.2  0.4

  23. >

  24. > ## true matrix multiplication

  25. > x %*% y    

  26.     [,1] [,2]

  27. [1,]   40   40

  28. [2,]   60   60


参考资料:

  1. https://bookdown.org/rdpeng/rprogdatascience/R Programming for Data Science

  2. 《R语言实战》 Robert I. Kabacoff

快快和我一起上车,请关注:生信小白学习记


猜你喜欢

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外120+ PI,1200+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存