我有两个数据帧df1
和df2
。这两个数据帧之间存在1:n关系,df2
在df1
中的每个条目中都有多个条目。
我的目标是合并这两个数据框,以便重复df1
中的所有行,并导入df2
中的所有列。 df2
中的外键(FK)指df1
中的主键(PK)
# example data:
df1 <- data.frame(PK = c(1,2,3,4,5),
varA = sample(5, replace=T),
varB = sample(5, replace=T))
df2 <- data.frame(FK = c(1,1,2,2,3,3,4,4,4),
varC = seq(9),
varD = seq(9))
数据框应类似于:
PK | FK | varA | varB | varC | varD
1 1 ... ... 1 1
1 1 ... ... 2 2
2 2 ... ... 3 3
2 2 ... ... 4 4
3 3 ... ... 5 5
3 3 ... ... 6 6
4 4 ... ... 7 7
4 4 ... ... 8 8
4 4 ... ... 9 9
5 NA ... ... NA NA
df1
中的所有条目都应该存在,即使df2
中没有相应的条目(那么varC和varD应该为NA)
答案 0 :(得分:1)
您可以使用本机R函数merge()进行此操作 https://www.statmethods.net/management/merging.html
或使用dplyr,由于更直观的类似sql的语法,我个人更喜欢dplyr: https://dplyr.tidyverse.org/reference/join.html?q=inner%20_%20j#join-types
由于您所指的是“ PK”和“ FK”,因此您可能更喜欢第二种选择,但是首先需要使用命令来安装和加载dplyr软件包
install.packages("dplyr")
library(dplyr)