【问题标题】:R - CSV error - unexpected numeric constantR - CSV 错误 - 意外的数字常量
【发布时间】:2011-09-06 18:00:42
【问题描述】:

我有一个简单的 csv 文件,其中包含用逗号分隔的大约 20K+ 值。当我尝试在 R 中加载值时,它给了我错误:

r:3: unexpected numeric constant

这是我执行的 R 的简单命令

someThing <- c(0.080172405,0.06233087,0.04315185,0.0652015,0.03201301.......n)
n= 70,000 values

我无法在此处复制粘贴所有 20K+ 值。我用谷歌搜索了这个错误,除了一些浮动值之外没有特殊字符或其他东西。

编辑

http://pastebin.com/FVkUV6kY

【问题讨论】:

  • 什么是无效条目?我怎样才能找到它?所有的值都大于 0 并且是浮动的。
  • 你能把全部数据发布到一个 pastebin 网站吗?
  • 已添加链接 - pastebin.com/FVkUV6kY
  • 那么您有一个包含单行逗号分隔数字的 CSV 文件?如果是这样,那就不太理想了。我会用 ',' 作为换行符,并将其作为表格读入。这样,您将能够通过识别行更容易地确定哪个值导致解析失败。
  • 你说“..这是我被执行的 R 的简单命令......”。您是如何执行该命令的?我怀疑您输入了 70,000 个数字,那么您是如何将 c(0.080172405,0.06233087,0.04315185,...) 输入命令行的?而且,您是否将其复制/粘贴到命令行(或您的编辑器)中?

标签: r csv


【解决方案1】:

第 5682 个条目是 "0.0733 7422182",其中有一个空格。

我认为这是一个简单的数据处理问题。

【讨论】:

  • 我发现和Triad一样的问题,我复制,粘贴到excel,再复制,特殊粘贴-转置。它就像 read.csv() 的魅力一样
【解决方案2】:

文件中间有一个换行符,这导致该部分看起来像(用空格替换换行符),因此在空格之后,有一个意外的数字常量。

... 0.0068243323,0.0733 7422182,0.07379706 ...

我是这样找到它的:

b <- scan(file, what=character(0))
length(b)

长度是2,不是1。

可以这样读入:

b <- paste(b, collapse="")
b <- substring(b, 3, nchar(b)-1)
b <- strsplit(b,",")[[1]]
b2 <- as.numeric(b)

【讨论】:

  • 不客气,但请注意 cmets 中关于更好地读取此类数据的其他建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-12
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多