当我移植CSV文件时,列的名称会发生变化。它们从"Fe/Cu"到"Fe.Cu"。但是我只有一个CSV文件就有这个神秘的问题。我试图重命名列
colnames(a[12:ncol(a)])=c("Fe/Cu","Fe/Zn","Fe/Ba")
但什么也没发生。有什么想法吗?
将check.names=FALSE
添加到函数调用csv.read
将允许您获取原始名称。这是因为默认情况下,csv.read
将检查列名是否在语法上有效,如 commet 中的@Asayat所述。
从csv.read
文档中:
check.names - logical: 如果为 TRUE,则 检查数据框以确保它们在语法上有效 变量名称。如有必要,可以对其进行调整(通过make.names(,以便 它们是,也是为了确保没有重复项。
如果您随后检查make.names
的文档,您会发现:
语法上有效的名称由字母、数字和点或 为字符添加下划线,并以字母或未跟随的点开头 按数字。诸如".2way"之类的名称无效,并且 保留字。
这就是@Asayat评论的内容。
列索引应该在colnames
之后,如下所示:
colnames(a)[12:ncol(a)]=c("Fe/Cu","Fe/Zn","Fe/Ba")