请解释加入?
Explain joining please?
我需要一些帮助来理解加入的概念。
如果您有 2 个具有公共变量的数据文件,我了解如何在心理上模拟联接的工作方式。喜欢:
Animal
Weight
Age
Dog
12
5
Cat
4
19
Fish
2
4
Mouse
1
2
Animal
Award
Dog
1st
Cat
1st
Fish
3rd
Mouse
5th
这些可以合并,因为动物列是完全相同的,它只是将另一个变量添加到对动物的相同观察中。
但是我不明白是这样的:
死亡率(心脏病发作)
Year
Place
Death Rate (Heart Attack)
2011
Paris
200
2011
Paris
94
2011
Rome
23
2009
London
15
死亡率(车祸)
Year
Place
Death Rate (Car Crash)
2011
London
987
2012
London
34
2012
Paris
09
2007
Melbourne
12
变量类型相同(年份、城市和死亡率)。但是年份值不一样,它们的顺序不一样,例如 2011 年的数量不一样,位置不同,显然有两个不同的死亡率需要在两个不同的列中,但是如何这个加入有效吗?你会加入哪个变量?加入后如何配置?如果这是跨越更大的数据集,它会导致很多 NA 值吗?
我知道有不同类型的联接可以做不同的事情,但我只是在努力了解如果您希望能够比较城市和城市中两种不同的死亡率,那么年份和城市会怎样年。
谢谢!
如果你这样做
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))
我需要一些帮助来理解加入的概念。
如果您有 2 个具有公共变量的数据文件,我了解如何在心理上模拟联接的工作方式。喜欢:
Animal | Weight | Age |
---|---|---|
Dog | 12 | 5 |
Cat | 4 | 19 |
Fish | 2 | 4 |
Mouse | 1 | 2 |
Animal | Award |
---|---|
Dog | 1st |
Cat | 1st |
Fish | 3rd |
Mouse | 5th |
这些可以合并,因为动物列是完全相同的,它只是将另一个变量添加到对动物的相同观察中。
但是我不明白是这样的:
死亡率(心脏病发作)
Year | Place | Death Rate (Heart Attack) |
---|---|---|
2011 | Paris | 200 |
2011 | Paris | 94 |
2011 | Rome | 23 |
2009 | London | 15 |
死亡率(车祸)
Year | Place | Death Rate (Car Crash) |
---|---|---|
2011 | London | 987 |
2012 | London | 34 |
2012 | Paris | 09 |
2007 | Melbourne | 12 |
变量类型相同(年份、城市和死亡率)。但是年份值不一样,它们的顺序不一样,例如 2011 年的数量不一样,位置不同,显然有两个不同的死亡率需要在两个不同的列中,但是如何这个加入有效吗?你会加入哪个变量?加入后如何配置?如果这是跨越更大的数据集,它会导致很多 NA 值吗?
我知道有不同类型的联接可以做不同的事情,但我只是在努力了解如果您希望能够比较城市和城市中两种不同的死亡率,那么年份和城市会怎样年。
谢谢!
如果你这样做
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))