Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 无效';路径';使用XLConnect的参数_R_Rcurl_Xlconnect - Fatal编程技术网

R 无效';路径';使用XLConnect的参数

R 无效';路径';使用XLConnect的参数,r,rcurl,xlconnect,R,Rcurl,Xlconnect,我尝试在R版本3.1.2中完成以下过程,但失败: library(RCurl) library(XLConnect) yr <- substr(Sys.Date(), 1, 4) mo <- as.character(as.numeric(substr(Sys.Date(), 6, 7)) - 1) temp <- tempfile() temp <- getForm("http://strikemap.clb.org.hk/strikes/api.v4/export",

我尝试在R版本3.1.2中完成以下过程,但失败:

library(RCurl)
library(XLConnect)
yr <- substr(Sys.Date(), 1, 4)
mo <- as.character(as.numeric(substr(Sys.Date(), 6, 7)) - 1)
temp <- tempfile()
temp <- getForm("http://strikemap.clb.org.hk/strikes/api.v4/export",
  FromYear = "2011", FromMonth = "1", 
  ToYear = yr, ToMonth = mo,
  `_lang` = "en")
CLB <- readWorksheetFromFile(temp, sheet=1)
unlink(temp)
库(RCurl)
库(XLConnect)

yr证明问题根本不在于XLConnect。根据Hadley的提示,在将查询结果读回R之前,我需要将查询结果保存到API中的文件中,我已经(几乎)使用以下代码完成了该过程:

library(httr)
library(readxl)
yr <- substr(Sys.Date(), 1, 4)
mo <- as.character(as.numeric(substr(Sys.Date(), 6, 7)) - 1)
baseURL <- paste0("http://strikemap.clb.org.hk/strikes/api.v4/export?FromYear=2011&FromMonth=1&ToYear=", yr, "&ToMonth=", mo, "&_lang=en")
queryList <- parse_url(baseURL)
clb <- GET(build_url(queryList), write_disk("clb.temp.xlsx", overwrite=TRUE))
CLB <- read_excel("clb.temp.xlsx")

我将使用read_excel搜索问题的解决方案,如果找不到,我将创建一个新问题。

我这样做了,我得到了基本相同的错误:
文件中有错误。存在(路径):无效的'file'参数
。我想您错误地认为
getForm()
的结果是一个文件。啊,好的。是什么,HTML?如果对由
getForm()
调用生成的临时文件运行
str()
,我会发现它是一个由无法识别的元素组成的原子向量。那么我要如何翻译我要找的表中的向量呢?或者有更好的方法到达那里吗?您需要将
getForm()
的结果保存到一个文件中…谢谢!我现在(几乎)已经把这个做好了。我将在回答中发布详细信息,并在必要时针对剩余故障开始一个新问题。我能够使用这行代码将数字转换为R中的正确日期:
CLB$Date
library(httr)
library(readxl)
yr <- substr(Sys.Date(), 1, 4)
mo <- as.character(as.numeric(substr(Sys.Date(), 6, 7)) - 1)
baseURL <- paste0("http://strikemap.clb.org.hk/strikes/api.v4/export?FromYear=2011&FromMonth=1&ToYear=", yr, "&ToMonth=", mo, "&_lang=en")
queryList <- parse_url(baseURL)
clb <- GET(build_url(queryList), write_disk("clb.temp.xlsx", overwrite=TRUE))
CLB <- read_excel("clb.temp.xlsx")
> CLB <- readWorksheetFromFile("clb.temp.xlsx")
Error in (function (classes, fdef, mtable)  : unable to find an inherited method for function ‘readWorksheet’ for signature ‘"workbook", "missing"’