首页 > 解决方案 > 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"))

标签: rstringdata-cleaningrecodefuzzy-comparison

解决方案


grepl()将返回TRUE包含“Pacific”的字符串,False否则返回。使用它来子集您的向量并替换为您想要的字符串:

df_original$Race[grepl("Pacific", df_original$Race)] <- "Native Hawaiian - Pacific Islander"

推荐阅读