R語言筆記二:向量、向量索引及其運算

1.內置數據集
R中的內置數據集存儲在datasets這個包中,這些數據一般蒐集於真實的調查數據。
help(package=“datasets”):查看數據集包。
data():列出所有數據集。
直接輸入數據集名字,就可以使用該數據集。這些內置數據集的名字都是默認的,我們在創建變量的時候最好不要與內置數據集的名字重疊。

2.數據結構
R中的數據類型
在這裏插入圖片描述
R對象:
object,它是指可以賦值給變量的任何事物,包括常量、數據結構、函數,甚至圖形。對象都擁有某種模式,描述了此對象是如何存儲的,以及某個類。

R中的數據結構:
在這裏插入圖片描述
3.向量
向量其實是用於存儲數值型、字符型或邏輯型數據的一維數組。
用函數c來創建向量。c代表concatenate連接,也可以理解爲收集collect,或者合併combine。
如:x<-c(1,2,3,4,5)
y<-c(“one”,“two”,“three”)
z<-c(TRUE,T,F)
注意:一個向量中所有數值的數據類型都必須是同一類型。

seq(from=1,to=100,by=2):生成1到100的公差爲2的序列。
seq(from=1,to=100,length.out=10):生成1到100之間的10個數。
rep(x,5):將x變量的值重複5次。

x<-c(1,2,3,4,5)
y<-c(6,7,8,9,10)
向量相加:x*2+y
輸出向量x中值大於3的數值: x[x>3]
控制向量x中每個數的重複次數:rep(x,c(2,4,6,1,3))

4.向量索引
在這裏插入圖片描述
(1)正負整數索引
x<-c(1:100)
x[1]:返回x向量中的第1個值。
x[-19]:輸出除了第19個元素之外的所有元素。
x[c(4:18)]:輸出第4到18個元素。
x[c(1,23,45)]:輸出第1、23、45個元素。
注意:不能同時有正負索引。

(2)邏輯向量索引
y<-c(1:10)
y[c(T,F,T,T,F,F,T,T,T,F)]:輸出邏輯值爲真的元素。(結果爲1 3 4 7 8 9)
y[c(T)]:所有元素爲真,輸出所有元素。
y[c(T,F)]:按照T,F循環判斷輸出。結果爲(1 3 5 7 9)
注意:如果有11個邏輯值,那麼多出的部分會顯示NA 。
y[y>5 & y<9]:輸出向量y中大於5小於9的元素。(結果爲6 7 8)

z<-c(“one”,“two”,“three”,“four”,“five”)
%in%:表示元素是否在向量中。
如:
“one” %in% z:返回TRUE。
z %in% c(“one”,“two”):判斷z中元素是否在向量(“one”,“two”)中。(返回TRUE
TRUE FALSE FALSE FALSE)

(3)名稱索引
可以使用names函數爲向量的每個元素添加名稱。
如:
y<-c(1:10)
names(y)<-c(“one”,“two”,“three”,“four”,“five”,“six”,“seven”,“eight”,“nine”,“ten”)
輸出y的結果爲:
在這裏插入圖片描述
輸出的y有兩行,一行是元素名稱,稱爲屬性;一行是元素值,稱爲value。可以通過每個元素的name訪問它的值。
如:y[“two”]:輸出對應的值2。

向量修改:
v<-1:3
v[c(4,5,6)]<-c(4,5,6)
在這裏插入圖片描述
v[20]<-4
在這裏插入圖片描述
append(x=v,values=99,after=5):在元素5和6之間插入一個值99。
append(x=v,values=99,after=0):在向量頭部插入數據99。
y<-y[-c(1:3)]:刪除向量中第1到3的元素。

5.向量運算
(1)兩向量長度相等
**:乘冪運算
%%:求餘運算
%/%:整除運算
在這裏插入圖片描述
(2)兩向量長度不相等
長向量的長度必須是短向量長度的整倍數,否則,報錯。運算時短向量被循環使用。
在這裏插入圖片描述
(3)向量的邏輯運算
==:一一判斷兩個向量的元素是否相等。
%in%:判斷左邊向量的元素是否在右邊向量中。
在這裏插入圖片描述
(4)向量運算函數
數學函數:
x <- c(1:6)
y <- c(-2.13,3.1415)
abs(x):返回向量x的絕對值。
sqrt(x):取平方根。
log(x,base=2):取對數,base爲底數。不加底數,默認爲自然對數。
常見的以10爲底的對數直接寫log10(x)。
exp(x):計算以自然常數e爲底的指數。
ceiling(y):不小於y的最小整數。
floor(y):不大於y的最小整數。
trunc(y):返回整數部分。
round(y,digits=2):四捨五入,digits表示要保留的小數位數。默認取整。
signif(y,digits=2):四捨五入,保留有效數字,digits表示保留的有效數字位數。
sin(x):求正弦。
cos(x):求餘弦。

統計函數:
vec <- 1:100
sum(vec):求和。
max(vec):求最大值。
min(vec):求最小值。
range(vec):返回最小值和最大值。
mean(vec):返回均值。
var(vec):返回向量方差。
sd(vec):返回向量的標準差。
prod(vec):返回向量連乘的積。
median(vec):計算中位數。
quantile(vec):計算分位數。

有時候不僅關注向量中的值,還關注向量中的位置,也就是索引值,這時候可以時候which系列的函數,其返回的不是具體值,而是索引值:
t <- c(1,4,2,5,7,9,6)
which.max(t):返回最大值的索引值。
which.min(t):返回最小值的索引值。
which(t==7):返回t向量中值爲7的元素的索引值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章