如何在 r 中修复:不允许重复的“row.names”


在 R 中您可能遇到的错误是:

 Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed 

当尝试将 CSV 文件读入 R 时,如果文件中标题行之外的每一行末尾都包含逗号,通常会发生此错误。

本教程准确解释了如何修复此错误。

如何重现错误

假设我们有以下名为my_data.csv的 CSV 文件:

请注意,文件中标题行之外的每一行末尾都有逗号。

现在假设我们尝试将此文件导入到 R 中:

 #attempt to import CSV into data frame
df <- read. csv (' my_data.csv ')

Error in read.table(file = file, header = header, sep = sep, quote = quote, : 
  duplicate 'row.names' are not allowed

我们收到一个错误,因为文件中标题行之外的每一行末尾都有逗号,导致 R 认为第一列值是行名称。

由于其中两行具有相同的种子值 (4),因此 R 认为存在重复的行名称。

如何修复错误

修复此错误的方法是在导入文件时简单地使用row.names=NULL

 #import CSV file into data frame
df <- read. csv (' my_data.csv ', row.names =NULL)

#view data frame
df

  row.names column1 column2 column3
1 4 5 7 NA
2 4 2 1 NA
3 7 9 0 NA

我们能够成功导入 CSV 文件,但列名称错误。

要解决此问题,我们可以更改列名称,然后删除最后一列:

 #modify column names
colnames(df) <- colnames(df)[2: ncol (df)]

#drop last column
df <- df[1:( ncol (df)-1)]

#view updated data frame
df

  column1 column2 column3
1 4 5 7
2 4 2 1
3 7 9 0

数据框现在的格式正确。

相关:如何在 R 中使用 ncol 函数

其他资源

以下教程解释了如何解决 R 中的其他常见错误:

如何在 R 中修复:名称与以前的名称不匹配
如何在 R 中修复:较长物体的长度不是较短物体长度的倍数
如何在 R 中修复:对比只能应用于具有 2 个或更多级别的因子

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注