r intersect R語言資料合併

2021-10-11 03:46:34 字數 3222 閱讀 9211

cbind(),rbind(),bind_rows(),merge()
我們先構造一組資料,以便下面的演示

> data1

+ namea=c("海波","立波","秀波"),

+ value=c("一波","接","一波")

+ )> data1

namea value

1 海波 一波

2 立波 接

3 秀波 一波

> data2

+ nameb=c("柯震東","劉強東","何盛東"),

+ value=c("東去","又","東來")

+ )> data2

nameb value

1 柯震東 東去

2 劉強東 又

3 何盛東 東來

> cbind(data1,data2)

namea value nameb value

1 海波 一波 柯震東 東去

2 立波 接 劉強東 又

3 秀波 一波 何盛東 東來

按列合併是cbind(),那麼按行合併自然是rbind()

> rbind(data1,data2)

error in match.names(clabs, names(xi)) : 名字同原來已有的名字不相對

出現了錯誤,這是因為」namea「 和」nameb「不同造成的,如果都為"namea" :

> data1

+ namea=c("海波","立波","秀波"),

+ value=c("一波","接","一波")

+ )> data1

namea value

1 海波 一波

2 立波 接

3 秀波 一波

> data2

+ namea=c("柯震東","劉強東","何盛東"),

+ value=c("東去","又","東來")

+ )> data2

namea value

1 柯震東 東去

2 劉強東 又

3 何盛東 東來

> #cbind(data1,data2)

> rbind(data1,data2)

namea value

1 海波 一波

2 立波 接

3 秀波 一波

4 柯震東 東去

5 劉強東 又

6 何盛東 東來

對資料修改後,沒有出現錯誤。如果 不修改資料該怎麼做:

為了解決這個問題,使用dplyr包中的bind_rows()函式,不要求合併欄位的名稱必須相同,這個函式會自己做判斷。

> library(dplyr)

> dplyr::bind_rows(data1,data2)

namea value nameb

1 海波 一波 2 立波 接 3 秀波 一波 4 東去 柯震東

5 又 劉強東

6 東來 何盛東

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, ...)

merge函式引數的說明:

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

​by,by.x,by.y:指定依據哪些行合併資料框,預設值為相同列名的列.

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

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

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

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

data3

name = c("波","東","波","波"),

type = c("秀","震","秀","秀"),

class = c(10,5,4,11),

num = c(85,50,90,90)

);data3

data4

name = c("波","東"),

type = c("海","震"),

class = c(5,5),

num = c(88,81)

);data4

#合併data3和data4

> merge(data3,data4,all =t)

name type class num

1 波 秀 4 90

2 波 秀 10 85

3 波 秀 11 90

4 波 海 5 88

5 東 震 5 50

6 東 震 5 81

#按照name,type,class合併data3.data4

> merge(data3, data4, by =c("name","type","class") , all = t)

name type class num.x num.y

1 波 秀 4 90 na

2 波 秀 10 85 na

3 波 秀 11 90 na

4 波 海 5 na 88

5 東 震 5 50 81

題圖我以後會好好畫的。

R語言資料探勘資料

包含理論知識與rpart包例項。包含演算法的自行實現,以及rweka包的c4.5演算法 tree包的cart演算法。離散選擇模型大師kenneth train的個人主頁,提供了matlab r和gauss的源 個人推薦r 中的rsghb包,採用的估計方法是hierarchical bayes演算法,...

資料定義語言(DDL) 和資料操縱語言(DML)

用於操縱表結構的資料定義語言命令有 create tabl 建立表 alter table 修改表 truncate table 刪除表中資料 drop table 刪除表 createtable 表名 字段 字 段型別 def ault 輸入預設值 null not null 1.新增字段 alt...

資料控制語言DCL和資料定義語言DDL

資料控制語言dcl 系統許可權 create session,create sequence,create synonym create table,create any table,drop table,drop any table create procedure,create any proc...