如何在Opencpu中将datetime作为参数传递?

时间:2019-05-14 13:42:43

标签: r curl opencpu

我在R中创建了一个函数Input,以针对日期参数Date1和Date2绘制图形。该函数在R中成功运行,并提供所需的输出。接下来,我尝试通过为URL提供curl命令和函数参数在OpenCPU上执行相同的操作。此时,指令失败并出现错误。

我正在尝试传递这样的参数:

curl http://localhost:5656/ocpu/library/InputParam/R/Input -d '{"Date1": "2018-04-25 05:45:00" & "Date2": "2018-05-27 21:45:00 AM"}'

error : unused argument (`'{Date1:` = NA)
In call:
Input(`'{Date1:` = NA)
curl: (3) URL using bad/illegal format or missing URL
'"Date2":' is not recognized as an internal or external command,
operable program or batch file.

这是功能代码:

Input <- function (Date1,Date2){

library('dplyr')

library('lubridate')

test <- data[data$ShiftStartTime >= Date1 & data$ShiftEndTime <= Date2,]


library('plotly')
p <- plot_ly(test, x = ~test$Equip, y = ~test$DTDuration, name = test$Description) %>%
    add_trace(y = ~test$DTDuration, name = test$Description) %>%
    layout(yaxis = list(title = 'DTDuration'), barmode = 'stack')

p

}

library('opencpu')
ocpu_start_server()`

类似这样的东西:

curl https://cloud.opencpu.org/ocpu/tmp/x0468b7ab/graphics/last/png
curl https://cloud.opencpu.org/ocpu/tmp/x0468b7ab/graphics/1/png?width=1000
curl https://cloud.opencpu.org/ocpu/tmp/x0468b7ab/graphics/last/svg
curl https://cloud.opencpu.org/ocpu/tmp/x0468b7ab/graphics/last/pdf?width=8`

1 个答案:

答案 0 :(得分:0)

您需要使用2018-04-25 05:45:00将字符串强制转换为R函数中的日期,如下所示:

input <- function (Date1,Date2){
  Date1 <- as.POSIXct(Date1)
  Date2 <- as.POSIXct(Date2)
  test <- data[data$ShiftStartTime >= Date1 & data$ShiftEndTime <= Date2,]
  ...

然后将日期作为字符串传递到http请求中。

也不要在函数中使用library(),而是在程序包Description文件中将这些程序包声明为依赖项。