首頁 > 軟體

R語言中cbind、rbind和merge函數的使用與區別

2021-03-11 19:00:21

cbind: 根據列進行合併,即疊加所有列,m列的矩陣與n列的矩陣cbind()最後變成m+n列,合併前提:cbind(a, c)中矩陣a、c的行數必需相符

rbind: 根據行進行合併,就是行的疊加,m行的矩陣與n行的矩陣rbind()最後變成m+n行,合併前提:rbind(a, c)中矩陣a、c的列數必需相符

> a <- matrix(1:12, 3, 4)
> print(a)
   [,1] [,2] [,3] [,4]
[1,]  1  4  7  10
[2,]  2  5  8  11
[3,]  3  6  9  12
> 
> b <- matrix(-1:-12, 3, 4)
> print(b)
   [,1] [,2] [,3] [,4]
[1,]  -1  -4  -7 -10
[2,]  -2  -5  -8 -11
[3,]  -3  -6  -9 -12
> 
> x=cbind(a,b)
> print(x)
   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]  1  4  7  10  -1  -4  -7 -10
[2,]  2  5  8  11  -2  -5  -8 -11
[3,]  3  6  9  12  -3  -6  -9 -12
> 
> y=rbind(a,b)
> print(y)
   [,1] [,2] [,3] [,4]
[1,]  1  4  7  10
[2,]  2  5  8  11
[3,]  3  6  9  12
[4,]  -1  -4  -7 -10
[5,]  -2  -5  -8 -11
[6,]  -3  -6  -9 -12
> 
> 
> c <- matrix(-1:-20, 4, 5)
> print(c)
   [,1] [,2] [,3] [,4] [,5]
[1,]  -1  -5  -9 -13 -17
[2,]  -2  -6 -10 -14 -18
[3,]  -3  -7 -11 -15 -19
[4,]  -4  -8 -12 -16 -20
> 
> x2=cbind(a,c)
Error in cbind(a, c) : 矩陣的行數必需相符(見arg2)
> print(x2)
   [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]  1  4  7  10  -1  -4  -7 -10 -13
[2,]  2  5  8  11  -2  -5  -8 -11 -14
[3,]  3  6  9  12  -3  -6  -9 -12 -15
> 
> y2=rbind(a,c)
Error in rbind(a, c) : 矩陣的列數必需相符(見arg2)
> print(y2)
Error in print(y2) : 找不到物件'y2'
> 

merge函數

兩個資料框擁有相同的時間或觀測值,但這些列卻不盡相同。處理的辦法就是使用
merge(x, y ,by.x = ,by.y = ,all = ) 函數。

#merge/合併
ID<-c(1,2,3,4)
name<-c(「A」,」B」,」C」,」D」)
score<-c(60,70,80,90)
student1<-data.frame(ID,name)
student2<-data.frame(ID,score)
total_student1<-merge(student1,student2,by=」ID」)
total_student1

當我們需要將相同的觀測物件得出的不同型別變數合併時,則採用cbind,也就是合併columm。

到此這篇關於R語言中cbind、rbind和merge函數的使用與區別的文章就介紹到這了,更多相關R語言 cbind、rbind和merge內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com