读入csv,列中的列数多于R中的列名

时间:2015-05-04 03:05:30

标签: r csv dataframe read.csv

所以我试图将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, ...

1 个答案:

答案 0 :(得分:0)

为什么不尝试不使用header = T

这样做:

#read data without any row names
data <- read.csv("2013_NBAseason.csv")

#enter string "home_points" to last column. I am assuming it is column 6.
data[1, 6] <- "Home_Points"

#make row 1, your column names
colnames(data) = data[1, ]

以上解决了吗?