我有一个问题,当导入.csv
文件到R.与我的代码:
t <- read.csv("C:\\N0_07312014.CSV", na.string=c("","null","NaN","X"),
header=T, stringsAsFactors=FALSE,check.names=F)
R报告了一个错误,没有做我想做的事情:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
more columns than column names
我想问题是因为我的数据格式不好。我只需要[,1:32]
的数据。其他的都应该删除。
数据可从以下网址下载:https://drive.google.com/file/d/0B86_a8ltyoL3VXJYM3NVdmNPMUU/edit?usp=sharing
非常感谢!
9条答案
按热度按时间rlcwz9us1#
将.csv文件作为文本文件打开(例如,在Mac上使用TextEdit),然后检查各列是否用逗号分隔。
csv是“逗号分隔的向量”。由于某种原因,当Excel保存我的csv时,它使用分号代替。
打开csv时,请用途:
分号只是一个例子,但正如其他人之前建议的那样,不要因为你的csv在Excel中看起来不错就认为它是这样的。
pn9klfpd2#
这是一个不稳定的CSV文件。多个标题(尝试粘贴到CSV Fingerprint),看看我的意思。
因为我不知道数据,所以不可能确保下面的代码能为您产生准确的结果,但是它涉及到使用
readLines
和其他R函数来预处理文本:dldeef673#
如果您只需要前32列,并且知道有多少列,则可以将其他列类设置为NULL。
如果您不想对每个colClass进行编码,并且喜欢猜测
read.csv
,则只需保存该csv并再次打开它。或者,您可以跳过标题,自己命名列并删除行为不正常的行。
上面的代码假设您不希望有任何重复的行,您也可以删除第一个条目等于第一个列名的行,但我将把这个留给您。
5vf7fwbs4#
尝试读取.table()而不是读取.csv()
wlp8pajw5#
我也面临着同样的问题。现在解决了。
只需使用
header = FALSE
zkure5ic6#
我也遇到了同样的问题。我在textfile中打开了我的数据,双精度表达式是用分号分隔的,你应该用句点替换它们
tvmytwxo7#
我遇到了这个错误,这是由文件顶部的多行 meta数据引起的。我可以通过执行skip=并跳过这些行来使用read.csv。
第一个月
flvtvl508#
对我来说,解决办法是使用csv2而不是csv。
0ejtzxu19#
将HEADER设置为FALSE将非常适合您...