在 R 中处理列名称中包含特殊字符的数据集的最佳方式是什么?

What's the best way to work with datasets that contain special characters in their column names in R?

我正在处理一些列名称中包含特殊字符的大型数据集。列名类似于:“@c_age1619_da * ((df.age >= 16) & (df.age <= 19))”或“sovtoll_available == False” . 使用这些名称的最佳方式是什么?我应该保留名称原样还是将它们重命名为对 R 更友好的名称?当我在像 df$value 这样的情况下调用它们时,R 错误地将列名解释为函数!

保留非标准名称的唯一好处是,如果您想将它们用作绘图或 table 等中的标签。但这将使处理数据变得非常困难,并且这些名称可以在以后作为标签重新引入。您可以通过将它们放在反引号中来使用非标准名称,例如,

df$`@c_age1619_da`

一些编辑器(如 RStudio)会正确地自动完成这些非标准名称,使它们更容易使用,但仍然不如标准名称好。

将它们重命名为标准名称通常会更好。许多读入数据的函数会自动执行此操作。您可以使用 make.names 函数将非标准名称转换为标准名称,主要是通过将任何特殊字符替换为 .s。像这样:

names(my_data) = make.names(names(my_data))

但通常最好是手动创建有意义的名称。与 sovtoll_unavailable.

之类的名称相比,sovtoll_available....False 也不是很友好的名称