我有两张数据。
第一个(df1)有一个列,它记录每一行的旧ID号,还有一个列有相应的新ID号。这是一个更大的数据集。
第二个(df2)列只有每一行的旧ID号。我想在第二个dataframe中创建一个新列,其中包含在df1中找到的相应的新ID号。
下面是数据集的一个虚拟示例:
df1
OldID NewID Numofsh Loc
ID10000 4853 158 Bath
ID10001 5091 43 York
ID10002 5205 12 Cambridge
ID10003 4897 6 London
ID10004 6488 8 Edinburghdf2
OldID CPH
ID10004 77/567/4433
ID10001 66/123/4567还有一个我想要的最后一个df2的虚拟例子
OldID CPH NewID
ID10004 77/567/4433 6488
ID10001 66/123/4567 5091发布于 2018-04-23 10:58:12
使用match来子集df1,并使用$提取'NewID‘的值。
df2$NewID <- df1[match(df2$OldID, df1$OldID), ]$NewID
df2
# OldID CPH NewID
#1 ID10004 77/567/4433 6488
#2 ID10001 66/123/4567 5091数据
df1 <- read.table(text = "OldID NewID Numofsh Loc
ID10000 4853 158 Bath
ID10001 5091 43 York
ID10002 5205 12 Cambridge
ID10003 4897 6 London
ID10004 6488 8 Edinburgh", header = TRUE)
df2 <- read.table(text = "OldID CPH
ID10004 77/567/4433
ID10001 66/123/4567", header = TRUE)发布于 2018-04-23 10:59:50
library(dplyr)
df3 <- df2 %>%
left_join(df1, by = 'OldID') %>%
select(-c(Numofsh, Loc))产额
OldID CPH NewID
1 ID10004 77/567/4433 6488
2 ID10001 66/123/4567 5091https://stackoverflow.com/questions/49979293
复制相似问题