首页 > 解决方案 > 如何纠正数据框中的拼写错误

问题描述

在数据框中,“明天”这个词有多种写法。我如何将其全部更改为相同?

现在

TOMORROW
2moro
Tomorrow 
tomorrow
tomrow

我想要的结果

Tomorrow 
Tomorrow 
Tomorrow 
Tomorrow 
Tomorrow

标签: r

解决方案


@Reju:在R中有很多方法可以覆盖,替换等字符串或字符串的一部分。对于您的情况,您可以使用经典的拼写错误条件,然后用正确的拼写方法替换。

使用 R & tidyverse (dplyr) 执行此操作的一种方法是 case_when() 函数。我指出这个函数,因为您的实际应用案例可能会更困难,您将不得不添加更多条件。这也使您无需定义嵌套的 ifelse() 调用。

我把你的数据变成了一个简单的数据框/tibble,即my_df,有一个变量WHEN。注意:还请阅读未来可重现的示例。

通过 dplyr 的 mutate,我创建了一个新列,即 WHEN_C。显然,您可以覆盖现有列...
如果您还必须清除其他条件,case_when() 可以让您免于使用许多嵌套的 ifelse 语句。case_when() 末尾的 TRUE 条件保持其他值不变。如果您的数据在该列中有其他正确的条目,您可能需要这个。%in% 运算符允许您提供选项向量并简化更长的 value1 OR value2 OR value3 ... 条件语句的构造。

    my_df <- my_df %>% 
    mutate(WHEN_C = case_when(
         WHEN %in% c("TOMORROW","2moro", "Tomorrow","tomorrow","tomrow" ) ~ "tomorrow"
        ,TRUE ~ WHEN
        )
    )

这产生:

在此处输入图像描述

显然,还有其他方法可以通过字符串操作来做到这一点。如果您想阅读此内容,它们需要所谓的正则表达式。


推荐阅读