r - 重命名“混乱”的数据框级别名称
问题描述
我有一个“乱七八糟”的数据框,里面到处都是因子级别的名称
DF <- data.frame(V1 = factor(c("A.", "zB,", "Cs", "At", "Dp", "Df")),
V2=factor(c("Af", "A_", "A_", ".A", "D.", "rB")))
我想重命名我的级别,以便我只有 A、B、C 和 D 级别。
我可以使用以下方法为每个单独的级别执行此操作:
as.data.frame(lapply(DF, function(x) { revalue(x, c("A."="A")) }))
但这对于大型数据框来说非常耗时。
有没有办法自动执行此操作,以便将包含字母“A”的每个级别重命名为 A(无论是称为 A. 还是 Af)等?
解决方案
对于此示例,您可以使用from快速完成stringr::str_extract
并在每列中应用mutate_all
dplyr
library(dplyr)
DF %>% mutate_all(stringr::str_extract, "[A-D]")
V1 V2
1 A A
2 B A
3 C A
4 A A
5 D D
6 D B
推荐阅读
- api - 如何在 10 月 15 日更新后获取 Instagram 帐户的用户 ID 和访问令牌?
- c# - 正则表达式在将表达式动态添加到列表时出错
- apache - 如何在 ubuntu 18.04 中修复 apache2 安装
- jquery - 将 .each 中的所有项目添加到隐藏字段中
- azure - 发布工件任务不在文件共享路径上发布代码
- android - packageManager.queryIntentActivities:检查解析的应用程序是否是浏览器
- c# - Outlook MailItem 嵌入图像未显示在已发送邮件中
- spring-boot - 设置 SpringBoot 客户端时无法绑定“spring.boot.admin.client”下的属性
- c# - Xamarin 如何根据 id 从 Rest API 加载 listView 详细信息?
- java - 如何在 ListView 中存储 ID 并显示数据在安卓java中