【发布时间】:2015-07-13 08:38:04
【问题描述】:
所以我试图将 csv 读入 R,如果我使用
data = read.csv("2013_NBAseason.csv", header = T)
我收到一个错误
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
duplicate 'row.names' are not allowed"
这是因为日期不是唯一的,因为每天都会玩多个游戏。因此,我尝试使用 this 删除最后一列,但仍然出现相同的错误。
问题的原因,看了this之后觉得是因为我最后一栏没有标题
所以我做到了
data = read.csv("2013_NBAseason.csv", header = T,
colClasses=c(rep(NA,7),"NULL"), row.names=NULL)
现在我有一个数据框,它的所有列名都移了过来,右边有一个空列
head(data)
row.names Date Box.Score Away Away_Points Home Home_Points
1 Tue, Oct 30, 2012 Box Score Washington Wizards 84 Cleveland Cavaliers 94
2 Tue, Oct 30, 2012 Box Score Dallas Mavericks 99 Los Angeles Lakers 91
3 Tue, Oct 30, 2012 Box Score Boston Celtics 107 Miami Heat 120
4 Wed, Oct 31, 2012 Box Score Sacramento Kings 87 Chicago Bulls 93
解决此问题或避免问题的最佳方法是什么?
另外,如果有人告诉我如何添加 csv,我可以上传它,以便你们可以看到原始数据。
此外,手动更改 csv 也行不通,因为这需要用类似的方法外推到更多 csvs
temp = list.files(pattern="*.csv")
data = do.call("rbind", lapply(temp, read.csv, ...
【问题讨论】:
-
您可能想从
data.table包中签出fread。我认为它在读取数据时没有这个限制。 -
您是否尝试过使用制表符分隔,例如在 read.csv 选项中设置
sep = "\t"?默认分隔符是逗号,但您的日期变量似乎有逗号,这可能会导致问题。