首页 > 解决方案 > 将缩写词转换为完整词

问题描述

我试图避免在 excel 中编写长的嵌套 ifelse 语句。

我正在处理两个数据集,一个有缩写和县名。

Abbre
COUNTY_NAME
1   AD  Adams
2   AS  Asotin
3   BE  Benton
4   CH  Chelan
5   CM  Clallam
6   CR  Clark

另一个包含县缩写和投票的数据集。

  CountyCode Votes
 1 WM            97
 2 AS            14
 3 WM           163
 4 WM           144
 5 SJ            21

对于第二个表,如何将县代码(缩写)转换为完整的拼写文本并将其添加为新列?

我一直在尝试使用 grep、match 和 %in% 来解决这个问题,但没有成功。显然,我遗漏了一些东西,任何见解都将不胜感激。

标签: r

解决方案


另一个基本 R 选项使用match

df2$COUNTY_NAME <- with(
  df1,
  COUNTY_NAME[match(df2$CountyCode, Abbre)]
)

> df2
  CountyCode Votes COUNTY_NAME
1         WM    97        <NA>
2         AS    14      Asotin
3         WM   163        <NA>
4         WM   144        <NA>
5         SJ    21        <NA>

一个data.table选项

> setDT(df1)[setDT(df2), on = .(Abbre = CountyCode)]
   Abbre COUNTY_NAME Votes
1:    WM        <NA>    97
2:    AS      Asotin    14
3:    WM        <NA>   163
4:    WM        <NA>   144
5:    SJ        <NA>    21

推荐阅读