我正在使用janitor clean_names()/make_clean_names(),并希望保留某些字符。我认为replace是我应该使用的论点,在某些情况下是可行的。例如,我可以用零代替破折号:
> janitor::make_clean_names("x-x", replace = c(`-` = "0"))
[1] "x0x"但是,似乎没有办法保留破折号(或其他特殊字符):
> janitor::make_clean_names("x-x", replace = c(`-` = "-"))
[1] "x_x"发布于 2022-02-23 17:24:08
使用make_clean_names的主要原因之一是返回一个可以解析的标准名称,而不必使用反引号。当存在非标准字符时,包使用_作为默认替换。因此,即使我们在vector中提供了一个命名的replace,它也将在代码中更改为_,因为文档表明操作顺序为
操作顺序是:使替换、(可选) ASCII转换、删除初始空格和标点符号、应用base::make.names()、应用snakecase::to_any_case和添加数字后缀来解析任何重复的名称。
janitor::make_clean_names("x-x", replace = c(`-` = "~"), use_make_names = FALSE)
[1] "x_x"
janitor::make_clean_names("x-x", replace = c(`-` = "-"), use_make_names = FALSE)
[1] "x_x"一个选项是指定sep_out以返回感兴趣的字符。
janitor::make_clean_names("x-x", sep_out = "-")
[1] "x-x"
janitor::make_clean_names("x-x", sep_out = "~")
[1] "x~x"使用make_clean_names保留非标准字符的一个选项是用唯一的标准字符替换,然后在以后替换唯一的字符/单词。
gsub("_change_", "-", janitor::make_clean_names("x-x:x~x",
replace = c(`-` = "_change_")))
[1] "x-x_x_x"https://stackoverflow.com/questions/71241246
复制相似问题