merge函式 merge函式

2021-10-12 15:04:30 字數 1499 閱讀 3768

r中的merge函式類似於excel中的vlookup,可以實現對兩個資料表進行匹配和拼接的功能。

merge(x, y, by = intersect(names(x), names(y)), by.x = by, by.y = by, all = false, all.x = all, all.y = all, sort = true, suffixes = c(".x",".y"), incomparables = null, ...)

x,y:用於合併的兩個資料框

by,by.x,by.y:用於連線兩個資料集的列,intersect(a,b)值向量a,b的交集,names(x)指提取資料集x的列名 by = intersect(names(x), names(y)) 是獲取資料集x,y的列名後,提取其公共列名,作為兩個資料集的連線列, 當有多個公共列時,需用下標指出公共列,如names(x)[1],指定x資料集的第1列作為公共列 也可以直接寫為 by = 『公共列名』 ,前提是兩個資料集中都有該列名,並且大小寫完全一致,r語言區分大小寫

all,all.x,all.y:指定x和y的行是否應該全在輸出檔案.

sort:by指定的列是否要排序.

suffixes:指定除by外相同列名的字尾.

incomparables:指定by中哪些單元不進行合併.

merge函式有4種匹配拼接模式,分別為inner,left,right和outer模式。 其中inner為預設的匹配模式。all=t代表全連線,all.x=t代表左聯結;all.y=t代表右連線

inner 模式匹配,只顯示兩個資料集公共列中均有的行

有多個公共列時,需指出使用哪一列作為連線列merge(x,y,by=intersect(names(x)[1],names(y)[1]))

當兩個資料集連線列名稱同時,直接用by.x,by.y 指定連線列merge(x,y,by.x ='name',by.y ='name')

當兩個資料集均有連線列時,直接指定連線列的名稱merge(x,y,by='name')

outer 模式,將兩張表的資料彙總,表中原來沒有的資料置為空

merge(x, y, all=true, sort=true)

all = true 表示選取x, y 資料集的所有行,sort = true,表示按 by 列進行排序,預設公升序

left 匹配模式

merge(x ,y,all.x=true,sort=true)

多個公共列 末指定連線列 ,左連線,設定 all.x = true,結果只顯示資料x的列及x在y資料集中沒有的列

merge(x, y, by = 'name',all.x = true, sort = true) # 多個公共列 指定連線列指, 左連線,設定 all.x = true,結果只顯示x所有names(x)[1]值

right 匹配模式

merge(x ,y ,by='name',all.y=true,sort=true)

多個公共列指定連線列# 左連線,設定all.y =true,結果只顯示y所有names(y) [1] 值的記錄

opencv中的merge函式

該函式用來合併通道 原型版本一 void merge const mat mv,size t count,outputarray dst 第乙個引數是影象矩陣陣列,第二個引數是需要合併矩陣的個數,第三個引數是輸出 版本二void merge const vector mv,outputarray d...

python 資料合併函式merge

merge left,right,how inner on none,left on none,right on none,left index false,right index false,sort false,suffixes x y copy true,indicator false,val...

python 資料合併函式merge

python中的merge函式與sql中的 join 用法非常類似,以下是merge 函式中的引數 merge left,right,how inner on none,left on none,right on none,left index false,right index false,sor...