r - 如何纠正数据框中的拼写错误
问题描述
在数据框中,“明天”这个词有多种写法。我如何将其全部更改为相同?
现在
TOMORROW
2moro
Tomorrow
tomorrow
tomrow
我想要的结果
Tomorrow
Tomorrow
Tomorrow
Tomorrow
Tomorrow
解决方案
@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
)
)
这产生:
显然,还有其他方法可以通过字符串操作来做到这一点。如果您想阅读此内容,它们需要所谓的正则表达式。
推荐阅读
- windows - 无法使用外部 `.svnignore` 文件忽略 Subversion 中的文件
- javascript - Node.js(VS Code)中的环境变量未定义
- javascript - Js window.requestAnimFrame not functioning?
- mysql - 如何在 .my.cnf 中为 mysqlsh 存储用户/密码信息?
- snowflake-cloud-data-platform - Snowflake 中 10GB 数据的数据存储成本是多少?
- r - 如何以向量形式保存for循环的输出
- php - PHP XPath 根据“子”值返回父节点
- tensorflow - 如何将自定义数据集导入 TensorFlow
- javascript - 使用 javascript 在特定元素后插入 div 的最佳方法
- c++ - 如果字符串视图为空终止,是否有一种安全的方法来断言?