语法无效名称的后果

时间:2017-09-14 17:27:20

标签: r naming-conventions read.table

read.table家庭(read.tableread.csvread.delim等)的论证check.names包含以下说明:

  

逻辑。如果TRUE则检查数据框中变量的名称,以确保它们是语法上有效的变量名。如果有必要,他们会调整(make.names),以便确保没有重复。

假设我加载了一个包含语法无效列名的数据框。除了必须使用`字符按名称访问特定列之外,还有其他任何后果吗?

1 个答案:

答案 0 :(得分:3)

查看help(make.names)以了解它的作用和原因。

  

语法上有效的名称由字母,数字和点或组成   下划线字符并以字母或点开头未跟随   一个数字。诸如“.2way”之类的名称无效,也不是   保留字。

     

字母的定义取决于当前的区域设置,但仅限于   ASCII数字被认为是数字。

     

如有必要,前缀字符“X”。所有无效字符   被翻译成“。”。缺失值转换为“NA”。名称   哪个匹配R关键字附加一个点。重复的值   由make.unique改变。

会让您失意的重要事项是空白列名称(df$``会出错),重复的列名称(df$val将仅返回第一个val列结果)。

除此之外,如果将此data.frame传递给期望具有有效名称的data.frame的函数,则可能会出现错误,并且可能会出现难以检测的静默错误。