根据r中另一个数据帧的匹配ID从数据帧中添加最低值

根据r中另一个数据帧的匹配ID从数据帧中添加最低值,r,dataframe,R,Dataframe,我有两个数据帧(数据帧#1和#2)。 数据帧#2中A列和B列中的值来自数据帧#1中的列ID#1,表示 每个ID_2行的相邻(即相邻)区域。也就是说,数据帧#2(即ID#2=7)的第一行与ID#1=1和2相邻 我想做的是: 如果可以在数据框2的a列或B列中找到ID#1的值,我希望找到第一年的最低值,并将其作为新列添加到数据框1中。请参考数据框#3了解我要创建的表。 例如,ID#1=1显示在数据框#2中的第#1和第4行中,最早的第一年是1990年 如果有人能帮助我,我将不胜感激。祝你晚上愉快 Dat

我有两个数据帧(数据帧#1和#2)。 数据帧#2中A列和B列中的值来自数据帧#1中的列ID#1,表示 每个ID_2行的相邻(即相邻)区域。也就是说,数据帧#2(即ID#2=7)的第一行与ID#1=1和2相邻

我想做的是: 如果可以在数据框2的a列或B列中找到ID#1的值,我希望找到第一年的最低值,并将其作为新列添加到数据框1中。请参考数据框#3了解我要创建的表。 例如,ID#1=1显示在数据框#2中的第#1和第4行中,最早的第一年是1990年

如果有人能帮助我,我将不胜感激。祝你晚上愉快

Dataframe #1

ID_1 col1 
1    10 
2    15
3    20
4    10
5    20
6    15

在获取长格式的数据帧2后执行联接,并为每个
ID\u 1
获取第一年
的最小值

library(dplyr)
library(tidyr)

df1 %>%
  left_join(df2 %>%
            pivot_longer(cols = c(A, B)), by = c('ID_1' = 'value')) %>%
  group_by(ID_1) %>%
  summarise(oldest_first_year = min(First_year))

#   ID_1 oldest_first_year
#  <int>             <int>
#1     1              1990
#2     2              1990
#3     3              1991
#4     4              1990
#5     5              1990
#6     6                NA
库(dplyr)
图书馆(tidyr)
df1%>%
左联合(df2%>%
pivot_更长(cols=c(A,B)),by=c('ID_1'='value'))%>%
分组人(ID_1)%>%
总结(最老的第一年=最小(第一年))
#ID_1最老的第一年
#               
#1     1              1990
#2     2              1990
#3     3              1991
#4     4              1990
#5     5              1990
#6 NA
数据

df1 <- structure(list(ID_1 = 1:6, col1 = c(10L, 15L, 20L, 10L, 20L, 
15L)), class = "data.frame", row.names = c(NA, -6L))

df2 <- structure(list(ID_2 = 7:12, A = c(1L, 3L, 2L, 1L, 4L, 3L), B = c(2L, 
4L, 3L, 3L, 5L, 4L), First_year = c(1990L, 1991L, 1995L, 1992L, 
1990L, 1999L)), class = "data.frame", row.names = c(NA, -6L))

df1非常感谢你的帮助,Ronak!!!
library(dplyr)
library(tidyr)

df1 %>%
  left_join(df2 %>%
            pivot_longer(cols = c(A, B)), by = c('ID_1' = 'value')) %>%
  group_by(ID_1) %>%
  summarise(oldest_first_year = min(First_year))

#   ID_1 oldest_first_year
#  <int>             <int>
#1     1              1990
#2     2              1990
#3     3              1991
#4     4              1990
#5     5              1990
#6     6                NA
df1 <- structure(list(ID_1 = 1:6, col1 = c(10L, 15L, 20L, 10L, 20L, 
15L)), class = "data.frame", row.names = c(NA, -6L))

df2 <- structure(list(ID_2 = 7:12, A = c(1L, 3L, 2L, 1L, 4L, 3L), B = c(2L, 
4L, 3L, 3L, 5L, 4L), First_year = c(1990L, 1991L, 1995L, 1992L, 
1990L, 1999L)), class = "data.frame", row.names = c(NA, -6L))