我有一个数据集“df”,其中包含许多观察结果和多个变量,包括一些邮政编码(在某些情况下重复多次)和一个不同的数据集“df2”,其中包含这些邮政编码的坐标。我想使用这些邮政编码的坐标将两个新变量添加到我的第一个数据集“df”中,但是,鉴于我拥有大量数据,循环花费的时间太长。我想知道是否可以以某种方式对其进行矢量化,同时保持数据帧结构而不更改为矩阵。我附上了我想要实现的简化版本。
# This dataset has my variables (removed the rest for simplicity)
df <- data.frame(pc = c("00001", "00002", "00003",
"00001", "00002", "00003",
"00001", "00002", "00003"))
pc
1 00001
2 00002
3 00003
4 00001
5 00002
6 00003
7 00001
8 00002
9 00003
#This dataset holds the coordinates
df2 <- data.frame(pc = c("00001", "00002", "00003"),
lat = c(1, 2, 3),
long = c(4, 5, 6))
pc lat long
1 00001 1 4
2 00002 2 5
3 00003 3 6
#This is the dataset I need
good.df <- data.frame(pc = c("00001", "00002", "00003",
"00001", "00002", "00003",
"00001", "00002", "00003"),
lat = c(1, 2, 3, 1, 2, 3, 1, 2, 3),
long = c(4, 5, 6, 4, 5, 6, 4, 5, 6))
pc lat long
1 00001 1 4
2 00002 2 5
3 00003 3 6
4 00001 1 4
5 00002 2 5
6 00003 3 6
7 00001 1 4
8 00002 2 5
9 00003 3 6
我已经寻找解决方案很长时间了,但考虑到我不知道如何正确提出问题,到目前为止我还没有成功。我非常感谢这里的一些指导。
谢谢
最佳答案
我们可以使用dplyr
包中的left_join
。通过pc
加入:
library(dplyr)
left_join(df, df2, by = "pc")
pc lat long
1 00001 1 4
2 00002 2 5
3 00003 3 6
4 00001 1 4
5 00002 2 5
6 00003 3 6
7 00001 1 4
8 00002 2 5
9 00003 3 6
关于r - 根据 R 中第一个数据集的值,向量化来自不同数据集的变量的新变量添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71973143/