r - 如何使用包含两种语言的单独数据框将语言 1 中的单个单词替换为语言 2 中的单词?
问题描述
我有一个带有西班牙语单词的数据框,并想用他们的英文翻译替换它们。翻译保存在包含两个单词的单独字典数据框中。原始数据框中的单词可以以随机顺序出现多次。原始数据框中也可以有没有翻译的单词;它们应保持其原始形式。
资源
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 包的建议特别感兴趣,但对其他解决方案也很满意。
解决方案
一个选项是on
加入data.table
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
, 然后做 aleft_join
和coalesce
输出
library(tidyverse)
df %>%
left_join(dictionary, by = c('item' = 'word_ES')) %>%
transmute(item = coalesce(word_EN, item))
推荐阅读
- java - 需要为字符串文字定义一个常量[SonarQube Smell]
- r - 隐马尔可夫参数
- java - 在 db 中查找具有 Java 中 OffsetDateTime 范围的记录
- typescript - 具有函数参数的对象的索引签名
- c# - Windows Server 2016 上的 IIS 10 未运行我的 ASP.NET MVC 网站
- javascript - 使用 Angular 装饰器访问动态组件
- python - ImportError:无法导入名称“IncompleteRead”-Windows
- r - 日期转换为另一种格式:R 中的时间问题
- php - 在对象 foreach 循环中将结果限制为一个,in_array 不起作用
- ruby-on-rails - Rails:如何用 0 计算模型