如何在 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 中的其他常见错误:
如何在 R 中修复:名称与以前的名称不匹配
如何在 R 中修复:较长物体的长度不是较短物体长度的倍数
如何在 R 中修复:对比只能应用于具有 2 个或更多级别的因子