read.table
家庭(read.table
,read.csv
,read.delim
等)的论证check.names
包含以下说明:
逻辑。如果
TRUE
则检查数据框中变量的名称,以确保它们是语法上有效的变量名。如果有必要,他们会调整(make.names
),以便确保没有重复。
假设我加载了一个包含语法无效列名的数据框。除了必须使用`
字符按名称访问特定列之外,还有其他任何后果吗?
答案 0 :(得分:3)
查看help(make.names)
以了解它的作用和原因。
语法上有效的名称由字母,数字和点或组成 下划线字符并以字母或点开头未跟随 一个数字。诸如“.2way”之类的名称无效,也不是 保留字。
字母的定义取决于当前的区域设置,但仅限于 ASCII数字被认为是数字。
如有必要,前缀字符“X”。所有无效字符 被翻译成“。”。缺失值转换为“NA”。名称 哪个匹配R关键字附加一个点。重复的值 由make.unique改变。
会让您失意的重要事项是空白列名称(df$``
会出错),重复的列名称(df$val
将仅返回第一个val
列结果)。
除此之外,如果将此data.frame传递给期望具有有效名称的data.frame的函数,则可能会出现错误,并且可能会出现难以检测的静默错误。