【问题标题】:httr CSV Content reading as integer instead of doublehttr CSV 内容读取为整数而不是双精度
【发布时间】:2017-04-17 20:49:57
【问题描述】:

我正在尝试使用来自在线来源的 httr 导入 csv,一切都很好,除了当它应该是双精度时它以整数形式读取列,导致这些值显示为 NA

我正在使用并遇到以下问题。

getdata <- GET(paste("https://rest.zuora.com/v1/files/",r$FileId, sep = ''), auth) invoice <- content(getdata, type = "text/csv")

  Parsed with column specification:
cols(
  Account.external_id__c = col_integer(),
  Invoice.Amount = col_double(),
  Invoice.Balance = col_integer(),
  Invoice.CreatedDate = col_datetime(format = "")
)
Warning: 171 parsing failures.
 row             col               expected actual
2475 Invoice.Balance no trailing characters    .4 
2726 Invoice.Balance no trailing characters    .71
3197 Invoice.Balance no trailing characters    .3 
3287 Invoice.Balance no trailing characters    .5 
3350 Invoice.Balance no trailing characters    .1 
.... ............... ...................... ......
See problems(...) for more details.

感谢任何帮助,谢谢。

【问题讨论】:

  • 你能提供足够的样本数据来说明问题吗?

标签: r csv httr zuora


【解决方案1】:

httr::content 函数在传递type = "text/csv" 时使用readr::read_csv。您可以在content 中将参数传递给read_csv,幸运的是read_csv 允许您定义要导入的csv 的列类型。

invoice <- content(getdata, type = "text/csv", col_types = cols(
  Account.external_id__c = col_integer(),
  Invoice.Amount = col_double(),
  Invoice.Balance = col_double(),
  Invoice.CreatedDate = col_datetime(format = "")
))

通知Invoice.Balance = col_double()

更多信息请参见vignette("column-types", package = "readr")

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    相关资源
    最近更新 更多