httr CSV 内容读取为整数而不是双精度

httr CSV Content reading as integer instead of double

我正在尝试使用来自在线资源的 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.

感谢任何帮助,谢谢。

当您传递 type = "text/csv" 时,httr::content 函数使用 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")