欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

這篇文章主要講解了“怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加”吧!

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、盤錦網(wǎng)站定制設(shè)計、自適應品牌網(wǎng)站建設(shè)、H5開發(fā)、電子商務商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應式網(wǎng)頁設(shè)計等建站業(yè)務,價格優(yōu)惠性價比高,為盤錦等各大城市提供網(wǎng)站開發(fā)制作服務。

數(shù)據(jù)合并操作涉及以下幾個問題:

橫向合并;

1. 是否需要匹配字段

1.1 匹配字段合并  

  1.1.1 主字段同名

  1.1.2 主字段不同名

1.2 無需匹配字段合并

縱向合并:(情況比較簡單,列字段數(shù)量相同,名稱相同)

因為縱向合并情況比較簡單,所以本篇講解也著重以橫向合并為主,按照以上幾個問題,需要用到的函數(shù)列舉如下:

cbind rbind merge plyr::join tidyr:: inner_join/full_join/left_join/right_join

首先介紹base內(nèi)置的兩三個函數(shù):

cbind rbind merge

###橫向追加(無需匹配字段)

數(shù)據(jù)集構(gòu)造如下:

ID<-c(1,2,3,4)

Name<-c("A","B","C","D")

Score<-c(60,70,80,90)

Sex<-c("M","F","M","M")

One<-data.frame(ID,Name)

Two<-data.frame(Score,Sex)

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

合并:

Total<-cbind(One,Two)

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

可以看到cbind函數(shù)橫向合并無需匹配主字段,僅僅是將兩個數(shù)據(jù)集橫向拼接在一起。

###縱向合并

構(gòu)造數(shù)據(jù)集:

ID<-c(1,2,3,4)

Name<-c("A","B","C","D")

Student1<-data.frame(ID,Name)

ID<-c(5,6,7,8)

Name<-c("E","F","G","H")

Student2<-data.frame(ID,Name)

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

合并:

Total_student3<-rbind(Student1,Student2)

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

以上通過rbind函數(shù)對Student1,Student2兩個數(shù)據(jù)集進行縱向合并(也稱追加)。

merge函數(shù):

merge函數(shù)主要針對橫向(列字段)合并,而且可以針對主字段(主鍵)進行匹配,如果主字段名稱不同,還可以指定前后相匹配的主字段。

基本語法如下:

merge(x, y, by = , by.x = , by.y = , all = , all.x = , all.y = , sort = , suffixes = , incomparables = , ...)

具體參數(shù)解釋如下:

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

接下來按照名相同與不同分兩種情況介紹;

列名相同:

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")  

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

#以上兩個數(shù)據(jù)集有相同的列名(ID)時,by參數(shù)可以省略(by="ID")

以上兩個數(shù)據(jù)集中,authors和books中有相同屬性的主字段(surname&name)但是主字段名稱不同,這里需要給merge函數(shù)指定匹配的主字段。

橫向合并的四種類型:

#inner(內(nèi)部鏈接)只合并交集

m1 <- merge(authors, books, by.x = "surname", by.y = "name")

#left join(左連接)

m2 <- merge(authors, books, by.x = "surname", by.y = "name",all.x=TRUE)

#right join(右連接)

m3 <- merge(authors, books, by.x = "surname", by.y = "name",all.y=TRUE)

#all_join(外連接)

m4 <- merge(authors, books, by.x = "surname", by.y = "name",all=TRUE)

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

plyr::join函數(shù)

join函數(shù)源于plyr包(該包作者就是大名鼎鼎的Hadley Wickham,就是ggplot2的開發(fā)者,當然它開發(fā)的包還有很多),使用前需要加載:

以下是該函數(shù)語法:

join(x, y, by = NULL, type = "left", match = "all")

當兩個數(shù)據(jù)集主字段有相同名稱時,by參數(shù)可以省略(by="name"),當名稱不同時,需指定左右兩個數(shù)據(jù)集匹配的主字段名稱。

join(x,y,by=intersect("Name","name"),type = "left")

以下我只演示相同主字段名稱下的四種類型合并語句:

構(gòu)造待合并數(shù)據(jù)集:

x<-data.frame(name=c("John","Paul","George","Ringo","Stuart","Pete"),instrument=c("guitar","bass","guitar","drums","bass","drums"))

y<-data.frame(name=c("John","Paul","George","Ringo","Brian"),band=c("TRUE","TRUE","TRUE","TRUE","FALSE"))

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

#left_join

data1<-join(x,y,by="name",type = "left")

#right_join

data2<-join(x,y,by="name",type = "right")

#inner_join

data3<-join(x,y,by="name",type = "inner")

#full_join

data4<-join(x,y,by="name",type = "full")

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

合并函數(shù)與merge函數(shù)基本相同。

dplyr::inner_join/full_join/left_join/right_join

(告訴你一個不幸的消息,該包作者還是Hadley Wickham,沒辦法,一個贏者通吃的時代,誰讓人家有才任性呢哈哈~_~)

dplyr的數(shù)據(jù)合并語句要比plyr還要精練:

x<-data.frame(Name=c("John","Paul","George","Ringo","Stuart","Pete"),instrument=c("guitar","bass","guitar","drums","bass","drums"))

y<-data.frame(name=c("John","Paul","George","Ringo","Brian"),band=c("TRUE","TRUE","TRUE","TRUE","FALSE"))

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

#(1)inner_join(x, y) :只包含同時出現(xiàn)在x,y表中的行

data1<-inner_join(x,y,by=c("Name"="name"))

#(2)left_join(x, y) :包含所有x中以及y中匹配的行

data2<-left_join(x,y,by=c("Name"="name"))

#(3)right_join(x, y,by=c("Name"="name")) :包含所有y中以及x中匹配的行

data3<-right_join(x,y,by=c("Name"="name"))

#(4)full_join(x,y,by=c("Name"="name")) :包含所以x、y中的行

data4<-full_join(x,y,by=c("Name"="name"))

#(5)semi_join(x, y) :包含x中,在y中有匹配的行,結(jié)果為x的子集

data5<-semi_join(x,y,by=c("Name"="name"))

#(6)anti_join(x, y) :包含x中,不匹配y的行,結(jié)果為x的子集,與semi_join相反

data6<-anti_join(x,y)

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

以上連接類型中,前四個(內(nèi)連接、外連接、左連接、右連接)最為常用,大家可以將dplyr和plyr以及merge函數(shù)三種連接方式進行對比記憶。

下面聊一列為啥要專門講一節(jié)數(shù)據(jù)連接方式:

因為……

在excel中……

這種數(shù)據(jù)連接真的……真的……真的……太費勁了

我所知道的連接方式——

第一:手動復制黏貼;(大家不要隨便作死)

第二:最古老的Microsoft Query(藏在excel數(shù)據(jù)導入菜單的最底層,據(jù)說微軟也不更新了,如果的excel是精簡版的,可能都沒法調(diào)用,菜單特丑)

第三:數(shù)據(jù)透視表;Alt+D+P(為啥微軟要把調(diào)用數(shù)據(jù)透視表多表合并的菜單隱藏起來只能用快捷鍵,太煩人了)

第四:微軟的最新商務智能應用——PowerBI(其中的PowerQuery、PowerPivot)

第五:第三方的效率插件(很多VBA大神寫過這些辦公插件,但是我就不愛用,多裝一個,Excel啟動拖后兩秒鐘,時間就是金錢啊你說是不)

以上四種方式(第一種除外),雖說都可以完成數(shù)據(jù)合并操作,但是效率上不敢恭維,每次都得走一遍菜單流程。如果有點R語言基礎(chǔ)的同學,強烈建議將這些操作放在R中操作,數(shù)據(jù)導入導出、長寬轉(zhuǎn)換、橫縱合并,只需修改一下代碼路徑、參數(shù)分分鐘搞定。

當然對于有數(shù)據(jù)庫基礎(chǔ)的同學(相信大部分同學都有吧,應該是大學本科的必修課)來講,寫幾個SQL也可以瞬間完成。

雖然已經(jīng)N多年沒有用過了,但是還是想在這里獻丑一下:

內(nèi)連接 inner join

語法:select * from x inner join y on x.Name =y.name

左連接 left join(左表中所有數(shù)據(jù),右表中對應數(shù)據(jù))

語法:select * from x left join y on x.Name = y.name

右連接 right join(右表中所有數(shù)據(jù),左表中對應數(shù)據(jù))

語法:select * from x right join y on x.Name = y.name

全連接 full join

語法:select * from x full join y on x.Name = y.name

怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加

我是一個比較懶、嫌麻煩但注重效率的人,很多關(guān)于數(shù)據(jù)處理上的需求,如果能用簡單的方式解決(比如VBA、R或者效率函數(shù)),我都不會去選擇安裝插件或者外部軟件,一方面太浪費時間,操作麻煩;另一方面,使用插件大多需要用菜單點選,以后遇到同樣的需要還得從新走一遍流程,所以我更傾向用簡單的可重復利用的代碼來解決。

簡單、省事兒、快捷、可重復……

感謝各位的閱讀,以上就是“怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

文章題目:怎么用R語言實現(xiàn)數(shù)據(jù)合并與追加
地址分享:http://aaarwkj.com/article14/pdhdde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、虛擬主機、企業(yè)網(wǎng)站制作、服務器托管、商城網(wǎng)站響應式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
亚洲邻家人妻一区二区| 久草午夜福利视频免费观看| 操小姑娘国产精品视频| 久久se精品一区精品二区国产 | 青青草成人免费在线公开视频| 国产日韩欧美一区二区三区四区| 亚洲欧美综合一区二区三区| 国产亚洲综合精品综合区| 国产精品一区二区毛卡片 | 国产高清不卡午夜福利| 水蜜桃在线观看一区二区国产| 成人激情视频在线网页| 末满18周岁禁止观看| 欧美国产精品中文字幕| 成人午夜激情在线观看| 熟女精品国产一区二区三区| 黄色高清无遮挡在线观看| 18岁以下禁看视频网站| 亚洲av乱码乱码精品| 亚州精品少妇久久久久久| 91最新精品丝袜国产在线| 中文字幕五月婷婷免费| 国产欧美精品久久三级| 久久99国产综合精品女同| 最新日韩一区二区在线| 中高龄夫妇五十路六十路| 国产高清不卡一区二区| 国产av综合一区二区三区最新| 黄片在线免费在线播放| 亚洲精品成人中文字幕| 97视频高清在线观看| 好吊视频在线免费观看| 一级片一区二区中文字幕| 精品一区二区亚洲精品| 精品一区二区三区高清| 日本黄色一区二区三区四区| 色哟哟国产精品一区自拍| 18岁以下禁止观看的视频| 蜜臀av免费在线观看| 久久国内午夜福利直播| 日韩一区欧美中文字幕|