我有一个包含西类牙语单词的数据框,想将其替换为英语翻译。翻译保存在包含这两个单词的单独字典数据框中。原始数据框中的单词可以以随机顺序出现多次。原始数据框中也可能存在未经翻译的单词;它们应保持其原始形式。
来源
library(tidyverse)
df <- tibble(item = c("agua","guerra","pelea","hijo","grande","pelea","agua","guerra"))
dictionary <- tibble(word_ES=c("agua","guerra","pelea"), word_EN=c("water","war","fight"))
期望的结果
df2 <- tibble(item = c("water","war","fight","hijo","grande","fight","water","war"))
我对使用 tidyverse 包的建议特别感兴趣,但也对其他解决方案感到高兴。
最佳答案
选项是 data.table
中的连接 on
library(data.table)
setDT(df)[setDT(dictionary), item := word_EN, on = .(item = word_ES)]
df
# item
#1: water
#2: war
#3: fight
#4: hijo
#5: grande
#6: fight
#7: water
#8: war
或者,如果我们更喜欢 tidyverse
,则执行 left_join
并合并
输出
library(tidyverse)
df %>%
left_join(dictionary, by = c('item' = 'word_ES')) %>%
transmute(item = coalesce(word_EN, item))
关于r - 如何使用包含两种语言的单独数据框将语言 1 中的单个单词替换为语言 2 中的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57892944/