一、R語言最基本的數據類型是向量。
首先介紹幾個新概念:
1、循環補齊:在一定的情況下自動延長向量;
2、篩選:提取向量子集;
3、向量化:對向量的每一個元素應用函數。
4、R語言中沒有標量,數字實際上被當做一元向量
5、R語言中向量索引是從1開始的,而C是從0開始的。
二、循環補齊
> c(1,2,3,4)+1
[1] 2 3 4 5
其中1被當作一元向量,循環補齊的效果就是c(1,1,1,1)
> c(1,2,3,4)+c(1,2)
[1] 2 4 4 6
其中c(1,2)循環補齊的效果是c(1,2,1,2)
若是:c(1,2,3,4)+c(1,2,3)
[1] 2 4 6 5
警告信息:
In c(1, 2, 3, 4) + c(1, 2, 3) : 長的對象長度不是短的對象長度的整倍數 #說明循環補齊要是長的對象是短的對象的整數倍纔行
三、向量運算和索引
R是一種函數式語言:
> 2+8
[1] 10
> "+"(2,8)
[1] 10
> x<-c(1,2,3)
> x+c(2)
[1] 3 4 5
> x*c(1,0,3)
[1] 1 0 9
依次類除法/ 取模%%都是按元素逐一進行運算,但是若是矩陣相乘,可以用%*%,而*是對應元素的相乘。
索引在R中比較重要和常用:
> a<-c(1.1,2.2,3.3,4.4,5.5)
> a[c(2:5)]
[1] 2.2 3.3 4.4 5.5
> b<-c(2:5)
> a[b]
[1] 2.2 3.3 4.4 5.5
負數的下標代表我們想把相應元素剔除
> a[-5]
[1] 1.1 2.2 3.3 4.4
> a[-3:-5]
[1] 1.1 2.2