我需要一些幫助來理解加入的概念。
如果您有 2 個具有公共變數的資料檔案,我了解如何在心理上對連接的作業方式進行建模。像:
| 動物 | 重量 | 年齡 |
|---|---|---|
| 狗 | 12 | 5 |
| 貓 | 4 | 19 |
| 魚 | 2 | 4 |
| 老鼠 | 1 | 2 |
| 動物 | 獎 |
|---|---|
| 狗 | 第一 |
| 貓 | 第一 |
| 魚 | 第三 |
| 老鼠 | 第 5 名 |
這些可以連接起來,因為動物列完全相同,它只是將另一個變數添加到對動物的相同觀察中。
但是當它是這樣的時候我不明白:
死亡率(心臟病發作)
| 年 | 地方 | 死亡率(心臟病發作) |
|---|---|---|
| 2011 | 巴黎 | 200 |
| 2011 | 巴黎 | 94 |
| 2011 | 羅馬 | 23 |
| 2009 | 倫敦 | 15 |
死亡率(車禍)
| 年 | 地方 | 死亡率(車禍) |
|---|---|---|
| 2011 | 倫敦 | 987 |
| 2012 | 倫敦 | 34 |
| 2012 | 巴黎 | 09 |
| 2007年 | 墨爾本 | 12 |
變數 TYPES 是相同的(年份、城市和死亡率)。但是年份值不一樣,順序也不一樣,比如2011年的數量不一樣,位置不一樣,很明顯有兩個不同的死亡率需要兩個不同的列,但是如何這個加入有效嗎?你會加入哪個變數?加入后如何配置?如果這是一個更大的資料集,它會導致大量的 NA 值嗎?
我知道有不同型別的連接可以做不同的事情,但是如果您想比較城市和年份的兩種不同死亡率,我只是在努力理解年份和城市的情況。
謝謝!
uj5u.com熱心網友回復:
如果你這樣做
merge(heart, car, all=TRUE)
# Year Place Death_Rate_heart Death_Rate_Car
# 1 2007 Melbourne NA 12
# 2 2009 London 15 NA
# 3 2011 London NA 987
# 4 2011 Paris 200 NA
# 5 2011 Paris 94 NA
# 6 2011 Rome 23 NA
# 7 2012 London NA 34
# 8 2012 Paris NA 9
merge自動尋找匹配names并合并它們。它在那些列中尋找對,所以它們不會被混合。更詳細地你可以做
merge(heart, car, all=TRUE, by.x=c("Year", "Place"), by.y=c("Year", "Place"))
這實際上就是在這種情況下發生的事情。
資料:
heart <- structure(list(Year = c(2011L, 2011L, 2011L, 2009L), Place = c("Paris",
"Paris", "Rome", "London"), Death_Rate_heart = c(200L, 94L, 23L,
15L)), class = "data.frame", row.names = c(NA, -4L))
car <- structure(list(Year = c(2011L, 2012L, 2012L, 2007L), Place = c("London",
"London", "Paris", "Melbourne"), Death_Rate_Car = c(987L, 34L,
9L, 12L)), class = "data.frame", row.names = c(NA, -4L))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/460346.html
上一篇:求和并正確加入列
下一篇:MySQL視圖中的左連接
