我有两个数据帧
X1是
size count
37 1.181
38 0.421
39 0.054
且X2为
size v1 v1
37 1 5
... ... ...
37 1 5
38 3 3
... ... ...
38 3 3
39 5 6
... ... ...
39 5 6
Dataframe X2基本上是一个大面板。我想在X2中创建第三列v3,这样,如果大小匹配,它将从X1中获取count的值。
这怎么可能?
您可以像这样将两个数据集连接在一起:
library(dplyr)
left_join(X2, X1, by="size")
Iris数据集的示例:
I2<-data.frame(Species=c("setosa", "versicolor", "virginica"),
myData=c(1,2,3))
left_join(iris, I2, by="Species")
这可以通过dplyr
包中的left_join()
来完成。
library(dplyr)
x1 <- tribble(~size, ~count,
37, 1.181,
38, 0.421,
39, 0.054
)
x2 <- tribble(~size, ~v1, ~v2,
37, 1, 5,
37, 1, 5,
38, 3, 3,
38, 3, 3,
39, 5, 6,
39, 5, 6
)
left_join(x2, x1, by = "size")
生产:
# size v1 v2 count
# <dbl> <dbl> <dbl> <dbl>
# 1 37 1 5 1.18
# 2 37 1 5 1.18
# 3 38 3 3 0.421
# 4 38 3 3 0.421
# 5 39 5 6 0.054
# 6 39 5 6 0.054
基本R函数merge
也会让你到达那里。
merge(x2, x1)