Вы можете извлечь числа для поднабора vec
, используя gsub
и регулярные выражения.
dat <- transform(dat, V3=vec[as.numeric(gsub(".*(\\d+).*", "\\1", V2))])
dat
# V1 V2 V3
# 1 1 f1.csv 1
# 2 2 f1.csv 1
# 3 3 f1.csv 1
# 4 4 f2.csv 4
# 5 5 f2.csv 4
# 6 6 f3.csv 3
Данные
dat <- structure(list(V1 = 1:6, V2 = c("f1.csv", "f1.csv", "f1.csv",
"f2.csv", "f2.csv", "f3.csv")), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))
vec <- c(1, 4, 3)