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



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

保留非标准名称的唯一优势是,如果您想在绘图或表格中使用这些名称作为标签。但这将使处理这些数据变得非常困难,这些名称稍后可能会作为标签重新引入。您可以通过将非标准名称放在backtick中来使用它们,例如

df$`@c_age1619_da`

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

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

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

但一般来说,最好的方法是手动创建有意义的名称。和sovtoll_unavailable相比,sovtoll_available....False也不是一个很友好的名字。

相关内容

  • 没有找到相关文章