Are you trying to do something like this?
library(dplyr, warn.conflicts = FALSE)
DF <- data.frame(ID = c("s23456", "s12345", "s23456", "s34567", "s12345"),
Value = 1:5)
CITIES <- data.frame(ID = c("s12345", "s23456", "s34567"),
City = c("London", "Edinburgh", "Glasgow"))
DF <- inner_join(DF, CITIES, by = "ID")
DF
#> ID Value City
#> 1 s23456 1 Edinburgh
#> 2 s12345 2 London
#> 3 s23456 3 Edinburgh
#> 4 s34567 4 Glasgow
#> 5 s12345 5 London
Created on 2020-08-08 by the reprex package (v0.3.0)