如何合并来自两个不同大小的小标题的信息?

how to combine info from two different sized tibbles?

R 新手,刚刚学习。

我有两个 tibbles,一个是 statecodes,有 67 行,包含从人口普查局 (CB) 州代码到州 name/abbrev 的映射,另一个是 shapedata,3233 行,包含有关大小的信息美国每个县的州代码与第一个标题中的相同。我想在第二个标题中添加名称和缩写。

> head(statecodes)
# A tibble: 6 × 3
  Name       Abbrev Code 
  <chr>      <chr>  <chr>
1 Alabama    AL     01   
2 Alaska     AK     02   
3 Arizona    AZ     04   
4 Arkansas   AR     05   
5 California CA     06   
6 Colorado   CO     08 
  
> head(shapedata)
# A tibble: 6 × 9
  STATEFP COUNTYFP COUNTYNS AFFGEOID       GEOID NAME       LSAD  ALAND      AWATER   
  <chr>   <chr>    <chr>    <chr>          <chr> <chr>      <chr> <chr>      <chr>    
1 39      071      01074048 0500000US39071 39071 Highland   06    1432479992 12194983 
2 06      003      01675840 0500000US06003 06003 Alpine     06    1912292630 12557304 
3 12      033      00295737 0500000US12033 12033 Escambia   06    1701544502 563927612
4 17      101      00424252 0500000US17101 17101 Lawrence   06    963936864  5077783  
5 28      153      00695797 0500000US28153 28153 Wayne      06    2099745573 7255476  
6 28      141      00695791 0500000US28141 28141 Tishomingo 06    1098938845 52360190 


> nrow(statecodes)
[1] 67

> nrow(shapedata)
[1] 3233

我不能使用 mutate,因为 input/output 的大小不同。我看过 purrr,但没有看到明显的使用方法。我正在尝试做这样的事情。

shapedata <- shapedata %>% mutate(statename = statecodes[statecodes$Code == STATEFP,]$Name)

其中 STATEFP 与“状态代码”中的状态代码相同

我可以写一个for循环,我只是想知道是否有更多的R-like方法。

TIA

我猜你正在寻找加入。

shapedata %>%
    left_join(statecodes, 
              by = c("STATEFP" = "Code"))