[英]Using R to match values in a common column for two dataframes and then writing across corresponding data
我有兩個數據框。
第一個(df1)具有一列,該列記錄每行的舊ID號,以及一列具有相應新ID號的列。 這是一個較大的數據集。
第二個(df2)的一列僅包含每行的舊ID號。 我想在第二個數據框中創建一個新列,其中包含在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 Edinburgh
df2
OldID CPH
ID10004 77/567/4433
ID10001 66/123/4567
還有我想要的最終df2的虛擬示例
OldID CPH NewID
ID10004 77/567/4433 6488
ID10001 66/123/4567 5091
使用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)
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 5091
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.