Попробуйте gsub
(me$filename <- gsub("(Ames)_(\\d+)_\\.tab", "\\1 \\2", me$filename))
#[1] "Ames 13502" "Ames 16950" "Ames 1903" "Ames 19097" "Ames 19467" "Ames 19532"
Теперь объедините два кадра данных: accesion
и filename
.
merge(TM, me, by.x = "accesion", by.y = "filename", all = TRUE)
# accesion specie d40
#1 Ames 13502 Teosinte 15714.88
#2 Ames 16950 <NA> 21633.59
#3 Ames 1903 <NA> 17167.95
#4 Ames 19097 <NA> 17041.48
#5 Ames 19467 <NA> 17198.14
#6 Ames 19532 <NA> 17307.25
#7 Ames 21785 Teosinte NA
#8 Ames 21786 Teosinte NA
#9 Ames 21787 Teosinte NA
#10 Ames 21789 Teosinte NA
#11 Ames 21790 Teosinte NA
данные
me <- structure(list(filename = c("Ames 13502", "Ames 16950", "Ames 1903",
"Ames 19097", "Ames 19467", "Ames 19532"), d40 = c(15714.88,
21633.59, 17167.95, 17041.48, 17198.14, 17307.25)), .Names = c("filename",
"d40"), row.names = c("1", "2", "3", "4", "5", "6"), class = "data.frame")
TM <- structure(list(specie = c("Teosinte", "Teosinte", "Teosinte",
"Teosinte", "Teosinte", "Teosinte"), accesion = c("Ames 13502",
"Ames 21785", "Ames 21786", "Ames 21787", "Ames 21789", "Ames 21790"
)), .Names = c("specie", "accesion"), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))