r - 将色谱柱提取或分离成两个不同的色谱柱
问题描述
我有一个超过 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
解决方案
我们可以尝试使用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)
推荐阅读
- amazon-dynamodb - AWS 按非主键删除项目
- typescript - 如何使用基于类的 Vue 组件获取类型化的 $data
- qt - 如何将注意力集中在您要禁用的复选框上
- python - 在 Python 中创建一个同时实现不同功能的模块
- javascript - 带有打字稿的Lodash发现不适用于重载
- python - 为什么 Altair 热图上的 y 轴是倒置的,如何反转它?
- javascript - 是否有必要使用 eventDestroy() 回调?
- css - 如何使使用边框和变换创建的箭头居中?
- android - Android 10 上的不同风格之间的备份和恢复
- sql - 在 MS Access SQL 中使用 Min 函数