r - R - 模糊查找和重新编码
问题描述
我正在清理 10 多个学区提交的人口统计数据,并且提交的内容不标准化/统一。我想找到模式并重新编码,以便数据干净简单。
假设我有一个名为 的变量Race
,其中一个类别是Native Hawaiian - Pacific Islander
。
学校 A 将此类别提交为Native Hawaiian or Other Pacific Islander
。学校 B 将此类别提交为Native Hawaiian/Pacific Islander
。学校 C 将此类别提交为Native Hawaiian or Pacific Islander
。
我怎么能重新编码这个,如果RPacific
在变量中的任何地方看到这个词,它会重新编码为Native Hawaiian - Pacific Islander
?
以下是原始数据:
df_original <- data.frame(Race=c("Native Hawaiian or Other Pacific Islander",
"Native Hawaiian/Pacific Islander", "Native Hawaiian or Pacific Islander",
"Black or African American", "Black", "Black/African American"))
这是理想的清理数据:
df_desired <- data.frame(Race=c("Native Hawaiian - Pacific Islander","Native Hawaiian - Pacific Islander",
"Native Hawaiian - Pacific Islander","Black - African American",
"Black - African American","Black - African American"))
解决方案
grepl()
将返回TRUE
包含“Pacific”的字符串,False
否则返回。使用它来子集您的向量并替换为您想要的字符串:
df_original$Race[grepl("Pacific", df_original$Race)] <- "Native Hawaiian - Pacific Islander"
推荐阅读
- f# - F# VS 2019 语法颜色编码
- kubernetes - 如何在 dnsConfig 中将节点 ip 设置为名称服务器?
- java - 如何在 Java Spring 中合并两个列表
- swift - Xcode:持续消息。文档存在已发现并修复的问题
- c++ - 如何避免在模板类中重新定义 typedef?
- sql - SQL 命令同时从两个表中选择
- android - 媒体播放器创建方法似乎不适用于我的项目,导致我的应用程序在启动第一个活动时崩溃。有人帮我请
- react-native - React Native 可能出现未处理的 Promise Rejections 错误
- php - 在已经找到不想使用的兼容路线之后,如何在 laravel 中检查兼容路线?
- android - 向其他 Android 应用程序公开二进制文件