清理 R 中唯一合法符号的字符串

Sanitize strings for unique legal symbols in R

我想清理字符串,以便将它们解析为唯一的合法符号。我打算清理很多字符串,因此在输出中存在重复符号的不良风险。获取每个非法字符并用其 base 32 编码替换它就足够了。期望的行为:

sanitize("_bad_symbol$not*a&list%$('")
## [1] "L4bad_symbolEQnotFIaEYlistEUSCQJY"

我想我需要的只是 grep 的可能字符的完整列表。我知道 lettersLETTERS,但其他一切呢?

是否已有更好的解决方案?因为我会喜欢的。

编辑:刚刚从 this post 中找到了大约 make.names()。我可以在紧要关头接受它,但我宁愿不这样做。

加上make.names()make.unique(),问题就解决了

make.unique(make.names(c("asdflkj#@#$", "asdflkj####")))
## [1] "asdflkj...."   "asdflkj.....1"