Вы не должны использовать with()
в программировании. Вот что говорится в документации:
Для интерактивного использования это очень эффективно и приятно читать. Однако для программирования, т. Е. В своих функциях, требуется больше внимания, и обычно следует воздерживаться от использования с (), поскольку, например, переменные в данных могут случайно переопределить локальные переменные, см. Ссылку.
Iне может проверить подход, потому что вы не предоставили воспроизводимый пример , но это может сработать:
translated <- vector("double", ncol(dataset))
for (i in seq_along(dataset)) {
# dict[match(dataset[[i]], dict$Lang), 2, drop=F]
translated[[i]] <- dict$English[match(dataset[[i]], Lang)]) # this row changed
}
tr_dataset <- as.data.frame(translated)