我做一个简单的
csv <- read.csv('omg.csv', sep=' ', row.names=1)
并得到
不允许重复的“row.names”
立即打印哪个行名称是重复的会很有帮助。有没有一种简单的方法可以做到这一点,除了对 CSV 文件进行排序等等?当然 R 在内部知道有问题的行的名称......
我做一个简单的
csv <- read.csv('omg.csv', sep=' ', row.names=1)
并得到
不允许重复的“row.names”
立即打印哪个行名称是重复的会很有帮助。有没有一种简单的方法可以做到这一点,除了对 CSV 文件进行排序等等?当然 R 在内部知道有问题的行的名称......
您可以在不要求将特定列用于行名的情况下读取文件:
csv <- read.csv('omg.csv', sep=' ')
并在第一列中查找重复项的索引:
which(duplicated(csv[, 1]))
您还可以使用table
来识别重复值及其各自的频率:
tab <- table(csv[, 1])
tab[tab > 1]
你想从这里做什么完全取决于你。您可以放弃row.names = 1
并对此感到满意。但是,如果您真的希望将第一列用作行名,您将需要做一些事情来解决这些重复项。您可以手动修复文件或以编程方式创建唯一的行名,如下所示:
rownames(csv) <- make.names(csv[, 1], unique = TRUE)
csv <- csv[, -1]