2

我做一个简单的

 csv <- read.csv('omg.csv', sep=' ', row.names=1)

并得到

不允许重复的“row.names”

立即打印哪个行名称是重复的会很有帮助。有没有一种简单的方法可以做到这一点,除了对 CSV 文件进行排序等等?当然 R 在内部知道有问题的行的名称......

4

1 回答 1

2

您可以在不要求将特定列用于行名的情况下读取文件:

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]
于 2013-11-09T13:00:08.167 回答