在 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
也不是很友好的名称
我正在处理一些列名称中包含特殊字符的大型数据集。列名类似于:“@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
也不是很友好的名称