向量是r語言的核心,向量的元素必須屬於某種資料型別,在乙個向量中元素必須是同一資料型別。
向量是最基本的資料型別。如果乙個函式作用到向量上,那麼它作用到該向量的每個元素之上。
x
5,by=
0.5)
;###以步長0.5從1至5建立向量(等差數列)
###建立times*length(x)個元素的向量
rep(x,times)
y5,2)
;y ##重複2:5這個序列2次
z5,rep(2,
4));z ###從2至5,每個元素重複兩次,4是元素個數
f5,times=
1,each=2)
;f##重複2:5這個序列一次,每個元素兩次
rep(c(1,
2,3)
,c(5,4
,3))
##重複元素1,5次;重複元素2,四次。
向量是連續儲存的,不能進行插入和刪除處理。向量一經建立,其大小已經確定。如果想要進行新增或刪除元素,則需要重新賦值。
################新增元素##############
x1,to=
100,by=2)
x[51
]101;x
v3v[c(4,
5,6)
]5,6)
;v #####批量賦值
x23]
,168
, x[24:
50])###在第23、24個元素之間插入168
9,after =2)
##在向量v中插入元素9,其位置在2個元素後
9,after =0)
###在向量頭部插入資料
##################刪除元素#############
y1:3)
];y###############修改元素##################
y["five"
]100;yv[2
]15;vv[3
]"five"
;v
x
1,to=
100,by=2)
length(x)
編寫乙個函式來判斷向量x元素中第乙個1所在的索引。
x
4,5,
1,6,
7,1,
2,3,
1)judge
function
(x)}
return(i)
}judge(x)
如果length(x)為0時,上述方法不再有用。
如:空向量x,r會報錯。我們可以用seq()函式來實現。如果x非空,seq()函式與1:length(x)的結果相同
> x
)> judge
function
(x)+
}+ return(i)+}
> judge(x)
null
較短向量會被r自動補充,直到與長向量長度相同。
在r中,矩陣實際上是乙個長向量。是一列一列地儲存的。在儲存上,矩陣y與向量c(1,2,3,4,5,6)相同。圖一的運算相當於圖二的運算。
圖一:
圖二:
r是一種函式式語言,每乙個符號都相當於乙個函式。
x
2,3,
4,5)
y7,8,
9,10)
> x+
1####向量中每個元素都加1[1
]234
56> y %% x ####求餘[1
]012
10> y %/% x ###整除[1
]632
22> x %*% y ###求內積[,
1][1
,]130> x * y ###對應元素相乘[1
]61424
3650
#求內積 x %*% y t(x)%*%y crossprod(x,y)
##求外積 x %o% y outer(x,y) x%*%t(y)
x2,3,
4,5)
y4,6,
8,10)
x%*%y
t(x)
%*%y
crossprod(x,y)
x%o%y
outer(x,y)
x%*%t(y)
###############################向量的索引#######################
x1,to=
100,by=2)
x[i]
##表示向量x的第i個元素
x[c(4:
18)]####向量x的第四個到第18個元素
x[c(1,
23,24,
50)]###向量x的第乙個、第23個、第24個、第50個元素
names(y)
"one"
,"two"
,"three"
,"four"
,"five");y
y["one"
]####訪問向量y中名字為one 的元素
分別返回其引數是否至少乙個為true,全部為true
> x
10> any(x>8)
[1]true
> any(x>88)
[1]false
> all(x>88)
[1]false
> all(x>0)
[1]true
例子1:尋找連續(:)出現1的遊程(run)。注:在乙個0和1組成的序列中,乙個由連續的0或者1構成的串稱為乙個遊程。
x
0,0,
1,1,
1,0,
1,1)
findruns
function
(x,k)
return(runs)
}findruns(x,
3)
由於呼叫c(runs,i),每次執行時都會減慢**的執行速度。我們可以預先分配記憶體空間。
x
0,0,
1,1,
0,0,
1,1)
findruns
function
(x,k)}if
(j>0)
else runs
null
return(runs)
}findruns(x,
3)
R語言 資料結構
向量 my vector c 1,2,8,9,16 my vector 2 4 矩陣 矩陣行列命名,預設先排列 cells c 1,36,24,12 row names c r1 r2 col names c c1 c2 my matrix1 matrix cells,nrow 2,ncol 2,d...
R語言資料結構
字元 character 數值 numeric real numbers 整數 integer 複數 complex 邏輯 logical tf必須大寫 x true 常用方法 名稱維度 型別長度 建立 vector x vector character length 10 this is anno...
R語言 資料結構
向量vector本質作為一維陣列可以包含數字,字元,布林值 a c 1,2,5,3,6,2,4 b c one two three c c true,true,true,false,true,false 矩陣matrix 二維陣列 構造需要通過matrix方法實現 x matrix 1 20,nro...