Вы можете использовать regexpr
и regmatches
для усечения ID_key
от dataframe_b до значений, найденных в dataframe_b , а затем использовать merge
.
dataframe_b$ID_key_tr <- regmatches(dataframe_b$ID_key, regexpr(paste0("^", unique(dataframe_a$ID_key), collapse = "|"), dataframe_b$ID_key))
dataframe_b
# ID_key ID_key_tr
#1 10020000000 1002
#2 10020000000 1002
#3 10020000000 1002
#4 10020000000 1002
#5 32410001001 32410001
#6 32410001001 32410001
#7 32410001001 32410001
merge(dataframe_a, dataframe_b, by.x="ID_key", by.y="ID_key_tr")
Данные:
dataframe_a <- data.frame(ID_key=c("1002","1002","1002","1002","32410001","32410001","32410001"))
dataframe_b <- data.frame(ID_key=c("10020000000","10020000000","10020000000","10020000000","32410001001","32410001001","32410001001"))