Мы могли бы создать именованный вектор, а затем использовать его для сопоставления значений 'AwayTeam', 'HomeTeam' и выполнить вычитание
nm1 <- setNames(m1[,1], LETTERS[m1[,2]])
Reduce(`-`, lapply(df1[c('AwayTeam', 'HomeTeam')], function(x) nm1[x]))
Или это просто
nm1[df1[['AwayTeam']]] - nm1[df1[['HomeTeam']]]
данные
m1 <- structure(c(-0.87, -0.75, 2.29, -0.05, 0.3555, -0.895, 3.29,
-0.51, 0.43, -3.29, 8, 7, 2, 5, 4, 9, 1, 6, 3, 10), .Dim = c(10L,
2L))
df1 <- structure(list(Week = c(3, 3, 4, 4, 5, 5), AwayTeam = c("E",
"A", "H", "I", "F", "F"), HomeTeam = c("A", "F", "E", "A", "C",
"J")), class = "data.frame", row.names = c(NA, -6L))