热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何更改列名称以符合mlr3的命名约定

我想使用许多(>50K)标记作为特征名称来执行文本分类。但是,中的Task()函数mlr3不允许在列名中包含很多字符,这些字符是

我想使用许多(> 50K)标记作为特征名称来执行文本分类。但是,中的Task()函数mlr3不允许在列名中包含很多字符,这些字符是通过的make.names,否则就可以了。以下是我目前找到的清单:

mutate(token=str_replace(token, "à", "a")) %>%
mutate(token=str_replace(token, "ã", "a")) %>%
mutate(token=str_replace(token, "á", "a")) %>%
mutate(token=str_replace(token, "ø", "o")) %>%
mutate(token=str_replace(token, "ç", "c")) %>%
mutate(token=str_replace(token, "ô", "o")) %>%
mutate(token=str_replace(token, "é", "e")) %>%
mutate(token=str_replace(token, "é", "e")) %>%
mutate(token=str_replace(token, "í", "i")) %>%
mutate(token=str_replace(token, "î", "i")) %>%
mutate(token=str_replace(token, "è", "e")) %>%
mutate(token=str_replace(token, "ë", "e")) %>%
mutate(token=str_replace(token, "å", "a")) %>%
mutate(token=str_replace(token, "â", "a")) %>%
mutate(token=str_replace(token, "æ", "a")) %>%
mutate(token=str_replace(token, "ñ", "n")) %>%

如何使我的 data.frame 与 兼容mlr3,而无需以这种方式手动替换所有特殊字符(反复试验)?make.names()显然不起作用!

我非常感谢一些帮助:) 谢谢!

回答


一种方法是使用 janitor::clean_names()

d <- data.frame(`süßigkeit` = 1:3, `straße` = 1:3, `Hellö` = 1:3, `séé` = 1:3)
janitor::clean_names(d)
#> sussigkeit strasse hello see
#> 1 1 1 1 1
#> 2 2 2 2 2
#> 3 3 3 3 3

由reprex 包(v0.3.0)于 2021 年 1 月 11 日创建

如果您正在处理向量,而不是 data.frame 的名称,则可以使用底层函数janitor::make_clean_names()

make_clean_names("süßigkeit")
[1] "sussigkeit"






推荐阅读
author-avatar
风之淡然1_925
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有