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