首页 > 解决方案 > 将色谱柱提取或分离成两个不同的色谱柱

问题描述

我有一个超过 72,000 行的数据集,需要将一列 (display_name) 提取到两个不同的列 (county 和 state) 列中的数据看起来像“Butler, (AL)”,我需要将它分开。

电流输入

  cnty_fips display_name               Value
   <chr>     <chr>                      <dbl>
 1 02013     "\"Aleutians East, (AK)\""  125.
 2 02016     "\"Aleutians West, (AK)\""  172.
 3 02020     "\"Anchorage, (AK)\""       336.
 4 02050     "\"Bethel, (AK)\""          478.

期望的输出

  County          State
   <chr>           <chr>
1 Aleutians East  AL   
2 Aleutians West  AL 

标签: r

解决方案


我们可以尝试使用sub基本 R 选项:

df$County <- sub(",.*$", "", df$display_name)
df$State <- sub("^.*\\((.*?)\\)$", "\\1", df$display_name)
df

   cnty_fips         display_name Value         County State
1     02013 Aleutians East, (AK)   125 Aleutians East    AK
2     02016 Aleutians West, (AK)   172 Aleutians West    AK
3     02020      Anchorage, (AK)   336      Anchorage    AK
4     02050         Bethel, (AK)   478         Bethel    AK

数据:

df <- data.frame(cnty_fips=c("02013", "02016", "02020", "02050"),
                 display_name=c("Aleutians East, (AK)", "Aleutians West, (AK)",
                                "Anchorage, (AK)", "Bethel, (AK)"),
                 Value=c(125, 172, 336, 478), stringsAsFactors=FALSE)

推荐阅读