20150921 [Coursera] R Programming (6)

整理自 R Programming (Week 1) -- Vectorized Operations

[ Week 1 課程內容 ]
 
 
[ 本次筆記內容 ] 
  • (一)Vectorized Operations
 
 
[ 補充資料 ]
 
 
 
 

(一)Vectorized Operations

[ 參考資料 ]
 
[ 重點整理 ] R 語言的特性
  • 運算的向量化 >> 運算變得簡單、容易,運算式也變得簡潔。
  • 計算上可以並行 >> 提高程式執行效率。
1.  向量化運算
 
> x <- 1:4; y <- 6:9    # 建立"x","y"這兩個向量(x: 1~4, y: 6~9)
>
> # 加法
> x + y    # 進行相加("1+6" "2+7" "3+8" "4+9")
[1] 7 9 11 13
>
> # 邏輯判斷
> x > 2    # 判斷"x"是否大於"2",會得到邏輯結果(TRUE or FALSE)
[1] FALSE FALSE TRUE TRUE
> x >= 2    # 判斷"x"是否大於等於"2",會得到邏輯結果(TRUE or FALSE)
[1] FALSE TRUE TRUE TRUE
> y == 8    # 判斷"x"是否等於"8",會得到邏輯結果(TRUE or FALSE)
[1] FALSE FALSE TRUE FALSE
>
> # 乘法
> x * y    # 進行相乘("1*6" "2*7" "3*8" "4*9")
[1] 6 14 24 36
>
> # 除法
> x / y    # 進行相除("1/6" "2/7" "3/8" "4/9")
[1] 0.1666667 0.2857143 0.3750000 0.4444444
 
 
2.  矩陣的向量化運算
 
> # 建立"x","y"這兩個矩陣
> x <- matrix(1:4, 2, 2)    # x: 從1~4,是個2x2的矩陣
> y <- matrix(rep(10, 4), 2, 2)    # y: 有4個10,是個2x2的矩陣
> x
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> y
     [,1] [,2]
[1,]   10   10
[2,]   10   10
>
>
> ## 矩陣內元素的運算
> x * y    # 這不是矩陣乘法,這是按照矩陣裡的元素相乘
 [,1] [,2]
[1,] 10 30
[2,] 20 40
>
> x / y    # 這不是矩陣除法,這是按照矩陣裡的元素相除
 [,1] [,2]
[1,] 0.1 0.3
[2,] 0.2 0.4
>
>
> ## 矩陣的運算
> x %*% y    # 矩陣相乘("%*%")
 [,1] [,2]
[1,] 40 40
[2,] 60 60