Re: [問題] 多個檔案合併 取聯集
一般來說,合併data.frame(Table)有以下數種方法:
- Outer Join, 就是你所謂的取聯集
- Inner Join, 取交集
- Left Outer Join
- Right Outer Join
- Cross Join
在R中,都可以透過merge指令簡單完成
以下是一個簡單的Demo
```r
file_1 <- data.frame(
name = c("A", "B", "D"),
day1 = c(23, 45, 100))
file_2 <- data.frame(
name = c("A", "C", "D"),
day2 = c(77, 11, 35))
# inner join
# 只取交集
merge(x = file_1, y = file_2, by = "name")
```
```
## name day1 day2
## 1 A 23 77
## 2 D 100 35
```
```r
# outer join
# 取聯集
merge(x = file_1, y = file_2, by = "name", all = TRUE)
```
```
## name day1 day2
## 1 A 23 77
## 2 B 45 NA
## 3 D 100 35
## 4 C NA 11
```
```r
# left outer join
# 把y 貼到 x
merge(x = file_1, y = file_2, by = "name", all.x = TRUE)
```
```
## name day1 day2
## 1 A 23 77
## 2 B 45 NA
## 3 D 100 35
```
```r
# right outer join
# 把x 貼到 y
merge(x = file_1, y = file_2, by = "name", all.y = TRUE)
```
```
## name day1 day2
## 1 A 23 77
## 2 D 100 35
## 3 C NA 11
```
```r
# cross join
# 展開所有可能的組合
merge(x = file_1, y = file_2, by = NULL)
```
```
## name.x day1 name.y day2
## 1 A 23 A 77
## 2 B 45 A 77
## 3 D 100 A 77
## 4 A 23 C 11
## 5 B 45 C 11
## 6 D 100 C 11
## 7 A 23 D 35
## 8 B 45 D 35
## 9 D 100 D 35
```
FYI
ps. reference: http://stackoverflow.com/questions/1299871/how-to-join-data-frames-in-r-inner-outer-left-right
※ 引述《iterate (碎形)》之銘言:
:
: ctrl + y 可以刪除一整行,請將不需要的內容刪除
: 文章分類提示:
: - 問題: 多個檔案合併時,取聯集。範例如下。
:
: [問題類型]:
:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
:
: [軟體熟悉度]:
: 請把以下不需要的部份刪除
: 入門(寫過其他程式,只是對語法不熟悉)
: [問題敘述]:
: 請簡略描述你所要做的事情,或是這個程式的目的
: file_1:
: day1
: A 23
: B 45
: D 100
: file_2:
: day2
: A 77
: C 11
: D 35
: file_3:
: day3
: B 11
: D 44
: E 55
: 希望能合併成下表:
: day1 day2 day3
: A 23 77 0
: B 45 0 11
: C 0 11 0
: D 100 35 44
: E 0 0 55
: [程式範例]: 無
:
: 張貼能夠重現錯誤的程式碼,可以幫助版友更快的幫你解決問題
:
: [關鍵字]: 謝謝各位的幫忙。
:
: 選擇性,也許未來有用
:
--
歡迎到ptt R_Language版分享R 的相關知識
歡迎加入 Taiwan R User Group : http://www.facebook.com/Tw.R.User
聚會報名 http://www.meetup.com/Taiwan-R/
聚會影片 https://www.youtube.com/user/TWuseRGroup
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 46.115.27.241
※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1405029045.A.390.html
推
07/12 00:49, , 1F
07/12 00:49, 1F
→
07/12 03:53, , 2F
07/12 03:53, 2F
→
07/12 03:53, , 3F
07/12 03:53, 3F
推
07/13 14:19, , 4F
07/13 14:19, 4F
推
08/02 22:00, , 5F
08/02 22:00, 5F
推
07/09 15:04, , 6F
07/09 15:04, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 6 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章