重复'row.names'是不允许的错误

geo*_*lly 61 csv r r-faq

我正在尝试加载一个包含14列的csv文件,如下所示:

StartDate,var1,var2,var3,....,var14

当我发出这个命令:

StartDate, var1, var2, var3, ..., var14
Run Code Online (Sandbox Code Playgroud)

我得到一个"重复row.names不允许"错误消息.

在我看来,第一个列名称导致了问题.当我手动下载文件并StartDate从文件中删除名称时,R成功读取文件并用第1列替换X.有人能告诉我发生了什么事吗?该文件是(逗号分隔的)csv文件.

Dir*_*tel 90

然后告诉read.table 不要使用row.names:

systems <- read.table("http://getfile.pl?test.csv", 
                      header=TRUE, sep=",", row.names=NULL)
Run Code Online (Sandbox Code Playgroud)

现在你的行将被编号.

还要看一下read.csv哪个是read.table已经设置了sep=','header=TRUE参数的包装器,以便你的调用简化为

systems <- read.csv("http://getfile.pl?test.csv", row.names=NULL)
Run Code Online (Sandbox Code Playgroud)

  • 我之前尝试过,它没有用.第一列现在称为"row.names",列名称进一步移动了一个单元格 (14认同)
  • OP已经知道如何避免错误.事实上,你的回答不如他之前做的那样,因为它会生成一个额外的列,要求复制数据.(我错误地写道,它只是搞乱了列名.) (4认同)
  • "现在你的行只会被编号"并不是完整的故事.正如您的评论所示,列名也被搞砸了.如果您知道一个解决方案不需要评论中提到的笨拙的解决方法(移动列名,复制数据),那就太棒了.(不幸的是,"修复你的源数据"对我的情况来说是不够的 - 它没有OP的问题,这跟随记录的行为http://stackoverflow.com/a/15285380/1191259.也许我会说我的情况有朝一日成为一个可重复的例子.) (3认同)

Bri*_*n D 34

看到这篇相关的帖子.

您的标题行可能比文件的其余部分少1列.你可以解决这个问题

  1. 在源文件的标题行末尾添加分隔符,或者,
  2. 删除数据中的任何尾随分隔符

例如标题只有一列:

v1,v2,v3
a,a,a,
b,b,b,

例如,在标题中添加尾随分隔符:

v1,v2,v3,
a,a,a,
b,b,b,