R语言基础系列前情提要:
Vectorized OperationsR中许多操作可以通过向量化变得更加简洁。 例如将两个向量加在一起: > 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*y 和 x/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
参考资料:
https:///rdpeng/rprogdatascience/R Programming for Data Science 《R语言实战》 Robert I. Kabacoff
|