【发布时间】:2016-02-28 07:42:16
【问题描述】:
我想使用 read.csv 函数将 csv 文件导入 R。 总是会出现错误,我认为这是由于csv文件中的每一行数据也以分号结尾,而标题行没有那个分号。
header1;header2;header3 # here, there's no semicolon at the end of the line
cell1;cell2;cell3; # here, there are semicolons!
cell4;cell5;cell6; # I think those are causing the issue
错误是:“不允许重复的'row.names'”
我正在处理大量 csv 文件,因此我希望有一种方法可以忽略数据行中的最后一个分号,因为我想使用第一行作为名称。
我使用的代码是:
df <- read.csv("test.csv", sep = ";", dec = ".", header = TRUE)
【问题讨论】:
-
使用 header=FALSE 并使用 skip 参数跳过标题。请注意,在发布到 SO 时,您应该提供所有输入和代码,以便读者可以在自己的机器上重现问题。如果它很长,那么您需要减少它,以便您的示例最小但仍然说明问题。
-
为什么第三行用逗号作为分隔符?
-
假设数据实际上是逗号分隔而不是分号分隔,或者如您的帖子似乎表明的那样混合分隔,我会使用
comment.char = ";" -
否则,如果它是混合的,我会在读入文档之前先 gsub 文档,以便所有分号都是逗号(反之亦然),然后读入并删除应该包含所有内容的最后一列缺少数据。
-
@James 我打错了逗号 - 所有行都用分号分隔。