
使用R進(jìn)行數(shù)據(jù)匹配的方法
R中的merge函數(shù)類(lèi)似于Excel中的Vlookup,可以實(shí)現(xiàn)對(duì)兩個(gè)數(shù)據(jù)表進(jìn)行匹配和拼接的功能。與Excel不同之處在于merge函數(shù)有4種匹配拼接模式,分別為inner,left,right和outer模式。 其中inner為默認(rèn)的匹配模式。本篇文章我們將介紹merge函數(shù)的使用方法和4種拼接模式的區(qū)別。
merge函數(shù)的使用方法很簡(jiǎn)單,以下是官方的函數(shù)功能介紹和使用說(shuō)明。merge函數(shù)中第一個(gè)出現(xiàn)的數(shù)據(jù)表是拼接后的left部分,第二個(gè)出現(xiàn)的數(shù)據(jù)表是拼接后的right部分。merge默認(rèn)會(huì)按照兩個(gè)數(shù)據(jù)表中共有的字段名稱(chēng)進(jìn)行匹配和拼接。
merge
開(kāi)始使用merge函數(shù)進(jìn)行數(shù)據(jù)拼接之前先讀取需要進(jìn)行匹配的兩個(gè)數(shù)據(jù)表,并命名為loan_status表和member_info表。
#讀取并創(chuàng)建貸款狀態(tài)數(shù)據(jù)表
loan_status=data.frame(read.csv('loan_status.csv',header = 1))
#讀取并創(chuàng)建用戶(hù)信息數(shù)據(jù)表
member_info=data.frame(read.csv('member_info.csv',header = 1))
下面我們分別查看了兩個(gè)數(shù)據(jù)表中的內(nèi)容。這個(gè)示例中的兩個(gè)數(shù)據(jù)表較小,可以完整顯示出來(lái),如果數(shù)據(jù)量較大的話可以就不能這么直觀的查看了。
#查看貸款狀態(tài)數(shù)據(jù)表
loan_status
#查看用戶(hù)信息數(shù)據(jù)表
member_info
對(duì)于較大的數(shù)據(jù)表,可以使用dim函數(shù)查看數(shù)據(jù)表的維度,下面我們分別查看了貸款狀態(tài)表和用戶(hù)信息表的維度。貸款狀態(tài)表有27行7列,用戶(hù)信息表有25行4列。
dim(loan_status);dim(member_info)
[1] 27 7
[1] 25 4
使用names函數(shù)查看兩個(gè)數(shù)據(jù)表的列名稱(chēng),下面分別顯示了代碼和列名稱(chēng)。可以發(fā)現(xiàn),兩個(gè)數(shù)據(jù)表中有一個(gè)共同的列member_id。
#查看兩個(gè)數(shù)據(jù)表的列名稱(chēng)
names(loan_status);names(member_info)
[1] "member_id" "loan_amnt" "term""issue_d" "loan_status" "total_pymnt_inv" "total_rec_int"
[1] "member_id" "grade" "emp_length" "annual_inc"
inner匹配
inner模式是merge的默認(rèn)匹配模式,我們通過(guò)下面的文氏圖來(lái)說(shuō)明inner的匹配方法。Inner模式提供在loan_status和member_info表中共有字段的匹配結(jié)果。也就是對(duì)兩個(gè)的表交集部分進(jìn)行匹配和拼接。單獨(dú)只出現(xiàn)在一個(gè)表中的字段值不會(huì)參與匹配和拼接。從下面的匹配結(jié)果中也可以看出,共有22行,包含了loan_status和member_info的交集。
#inner模式匹配
merge(loan_status,member_info,by = 'member_id')
outer模式是兩個(gè)表的匯總,將loan_status和member_info兩個(gè)要匹配的兩個(gè)表匯總在一起,生成一張匯總的唯一值數(shù)據(jù)表以及匹配結(jié)果。從結(jié)果中可以看出共包含30行數(shù)據(jù),比兩個(gè)表的行數(shù)都要多。并且在grade和其他字段包含Na值,這些是在兩個(gè)表中匹配不到的內(nèi)容。
#outer模式匹配
merge(loan_status,member_info,all=TRUE,sort=TRUE)
left模式是左匹配,以左邊的數(shù)據(jù)表loan_status為基礎(chǔ)匹配右邊的數(shù)據(jù)表member_info中的內(nèi)容。匹配不到的內(nèi)容以NaN值顯示。在Excel中就好像將Vlookup公式寫(xiě)在了左邊的表中。下面的文氏圖說(shuō)明了left模式的匹配方法。Left模式匹配的結(jié)果顯示了所有左邊數(shù)據(jù)表的內(nèi)容,以及和右邊數(shù)據(jù)表共有的內(nèi)容。
以下為使用left模式匹配并拼接后的結(jié)果,loan_status在merge函數(shù)中第一個(gè)出現(xiàn),因此為左表,member_grade第二個(gè)出現(xiàn),為右表。匹配模式為all.x=TRUE。從結(jié)果中可以看出left匹配模式保留了一張完整的loan_status表,以此為基礎(chǔ)對(duì)member_info表中的內(nèi)容進(jìn)行匹配。loan_status表中有5個(gè)member_id值在member_info中無(wú)法找到,因此grade字段顯示為NA值。
merge(loan_status,member_info,all.x=TRUE,sort=TRUE)
right與left模式正好相反,right模式是右匹配,以右邊的數(shù)據(jù)表member_info為基礎(chǔ)匹配左邊的數(shù)據(jù)表loan_status。匹配不到的內(nèi)容以NA值顯示。下面通過(guò)文氏圖說(shuō)明right模式的匹配方法。Right模式匹配的結(jié)果顯示了所有右邊數(shù)據(jù)表的內(nèi)容,以及和左邊數(shù)據(jù)表共有的內(nèi)容。
以下為使用right模式匹配拼接的結(jié)果,從結(jié)果表中可以看出right匹配模式保留了完整的member_info表,以此為基礎(chǔ)對(duì)loan_status表進(jìn)行匹配,在loan_status數(shù)據(jù)表中有3個(gè)條目在member_info數(shù)據(jù)表中無(wú)法找到,因此顯示為了NA值。
merge(loan_status,member_info,all.y=TRUE,sort=TRUE)
數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶(hù) ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱(chēng) BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢(xún)到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢(xún)結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢(xún)結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專(zhuān)注于從單 ...
2025-07-09year_month數(shù)據(jù)類(lèi)型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類(lèi)型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門(mén)控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書(shū)考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專(zhuān)業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開(kāi)啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03