R:根据参考文件将列中的名称转换为翻译名称
R: Converting names in a column to translated names based on a reference file
感谢您看我的问题,新年快乐!
我的 problem/question:我有一个数据框列,其中包含这样的名称列表(有些还重复):
Name (German)
Josef
Georg
Mathilde
Josef
Ludwig
Lorenz
Georg
...
我想,例如将这些名称转换为对应的英文名称,相应的德文和英文名称包含在另一个参考文献 file/dataframe 中,如下所示:
Name (German) Name (English)
Mathilde Mathilda
Georg George
Lorenz Lawrence
Josef Joseph
Ludwig Lewis
...
所以最后,我的带有新列的数据框将如下所示:
Name (German) Name (English)
Josef Joseph
Georg George
Mathilde Mathilda
Josef Joseph
Ludwig Lewis
Lorenz Lawrence
Georg George
...
如果有人知道如何做到这一点,请帮我弄清楚如何去做,我将不胜感激。无论如何,感谢您的帮助!
谨致问候!
使用 read.table()
.
编写 dict
ionary
dict <- read.table(header=TRUE, text='
German English
Mathilde Mathilda
Georg George
Lorenz Lawrence
Josef Joseph
Ludwig Lewis
')
然后是match()
.
transform(dat, English=dict[match(dat$Name, dict$German), ]$English)
# Name English
# 1 Josef Joseph
# 2 Georg George
# 3 Mathilde Mathilda
# 4 Josef Joseph
# 5 Ludwig Lewis
# 6 Lorenz Lawrence
# 7 Georg George
数据:
dat <- structure(list(Name = c("Josef", "Georg", "Mathilde", "Josef",
"Ludwig", "Lorenz", "Georg")), class = "data.frame", row.names = c(NA,
-7L))
感谢您看我的问题,新年快乐!
我的 problem/question:我有一个数据框列,其中包含这样的名称列表(有些还重复):
Name (German)
Josef
Georg
Mathilde
Josef
Ludwig
Lorenz
Georg
...
我想,例如将这些名称转换为对应的英文名称,相应的德文和英文名称包含在另一个参考文献 file/dataframe 中,如下所示:
Name (German) Name (English)
Mathilde Mathilda
Georg George
Lorenz Lawrence
Josef Joseph
Ludwig Lewis
...
所以最后,我的带有新列的数据框将如下所示:
Name (German) Name (English)
Josef Joseph
Georg George
Mathilde Mathilda
Josef Joseph
Ludwig Lewis
Lorenz Lawrence
Georg George
...
如果有人知道如何做到这一点,请帮我弄清楚如何去做,我将不胜感激。无论如何,感谢您的帮助!
谨致问候!
使用 read.table()
.
dict
ionary
dict <- read.table(header=TRUE, text='
German English
Mathilde Mathilda
Georg George
Lorenz Lawrence
Josef Joseph
Ludwig Lewis
')
然后是match()
.
transform(dat, English=dict[match(dat$Name, dict$German), ]$English)
# Name English
# 1 Josef Joseph
# 2 Georg George
# 3 Mathilde Mathilda
# 4 Josef Joseph
# 5 Ludwig Lewis
# 6 Lorenz Lawrence
# 7 Georg George
数据:
dat <- structure(list(Name = c("Josef", "Georg", "Mathilde", "Josef",
"Ludwig", "Lorenz", "Georg")), class = "data.frame", row.names = c(NA,
-7L))