R语言笔记4:向量、矩阵的数学运算

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

  • 1数据类型(向量、数组、矩阵、 列表和数据框)

  • 2读写数据所需的主要函数、与外部环境交互

  • 3数据筛选——提取对象的子集

Vectorized Operations

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

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

> x <- 1:4
> y <- 6:9 
> z <- x + y
> z
[1]  7  9 11 13

相比写循环更加简便:

> x <- 1:4
> y <- 6:9 
> w <- numeric(length(x))
> for(i in seq_along(x)) {
+ w[i] <- x[i] + y[i]
+ }
> w
[1]  5  7  9 11

另外还可以有其他运算:

> x <- 1:4
> y <- 6:9 
> x - y
[1] -5 -5 -5 -5
> x * y
[1]  6 14 24 36
> x / y
[1] 0.1666667 0.2857143 0.3750000 0.4444444

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

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

> x <- matrix(1:4, 2, 2)
> y <- matrix(rep(10, 4), 2, 2)
> x
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> y
     [,1] [,2]
[1,]   10   10
[2,]   10   10
>
> ## element-wise multiplication
> x * y       
     [,1] [,2]
[1,]   10   30
[2,]   20   40
> 
> ## element-wise division
> x / y       
     [,1] [,2]
[1,]  0.1  0.3
[2,]  0.2  0.4
> 
> ## true matrix multiplication
> x %*% y     
     [,1] [,2]
[1,]   40   40
[2,]   60   60

参考资料:

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

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

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


猜你喜欢

  • 热文:1高分文章 2不可或缺的人 3图表规范

  • 一文读懂:1微生物组 2寄生虫益处 3进化树

  • 必备技能:1提问 2搜索  3Endnote

  • 文献阅读 1热心肠 2SemanticScholar 3geenmedical

  • 扩增子分析:1图表解读 2分析流程 3统计绘图  4功能预测

  • 科研经验:1云笔记  2云协作 3公众号  

  • 系列教程:1Biostar 2微生物组  3宏基因组

  • 生物科普 1肠道细菌 2人体上的生命 3生命大跃进  4细胞的暗战 5人体奥秘

写在后面

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

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

你可能感兴趣的:(R语言笔记4:向量、矩阵的数学运算)