【问题标题】:Generate codes based on Nominal Variables present in a dataframe根据数据框中存在的名义变量生成代码
【发布时间】:2021-09-20 15:17:25
【问题描述】:

我有一个包含 1000 个观察值的数据框,它的结构如下。

Town <- c("TownA", "TownB", "TownC","TownD","Town A", "Town Z")
Ward <- c("Ward B","Ward Z","Ward A","Ward W","Ward X", "Ward ")
DF <- data.frame(Town, Ward)

我有另一个数据集,其中包含代表 Town 和 Ward 的名义观察值的代码。代码是用于分析的代码。例如,A 镇的代码为 23,B 镇的代码为 15,Z 镇的代码为 7。除了手动创建新列并根据城镇填充代码之外,还有没有更简单的方法在 R 中执行此操作?

我的目标是改变一个新的列,将代码与城镇相匹配。该数据集包含大约 200 个城镇。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    您可以创建一个新的代码表,然后加入:

    library(tidyverse)
    
    Town <- c("TownA", "TownB", "TownC","TownD","Town A", "Town Z")
    Ward <- c("Ward B","Ward Z","Ward A","Ward W","Ward X", "Ward ")
    DF <- data.frame(Town, Ward)
    
    codes <- tribble(
      ~Town, ~Code,
      "TownA", 23,
      "TownB", 15,
      "Town Z", 7
    )
    codes
    #> # A tibble: 3 × 2
    #>   Town    Code
    #>   <chr>  <dbl>
    #> 1 TownA     23
    #> 2 TownB     15
    #> 3 Town Z     7
    
    DF %>%
      left_join(codes)
    #> Joining, by = "Town"
    #>     Town   Ward Code
    #> 1  TownA Ward B   23
    #> 2  TownB Ward Z   15
    #> 3  TownC Ward A   NA
    #> 4  TownD Ward W   NA
    #> 5 Town A Ward X   NA
    #> 6 Town Z  Ward     7
    

    reprex package (v2.0.1) 于 2021-09-20 创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      相关资源
      最近更新 更多