如何在R中将大量数据传递给Plumber

时间:2018-11-14 20:48:35

标签: r plumber

我想通过制作一个应用程序来使用plumber库,该应用程序需要14天的历史数据并返回指数平滑预测。

问题是我不熟悉将大量数据(具有多个值的参数)传递给API。我的问题可以总结如下:

  1. 我应该如何准备R中的数据以传递给API?

  2. 如何在plumber中准备API以接收时间序列数据?

下面是一些示例数据和一个功能,该功能可以实现我在R中想要的功能。

library(tidyverse)

# data to be passed to API
head(forecast::wineind,14)
#>        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov
#> 1980 15136 16733 20016 17708 18019 19227 22893 23739 21133 22591 26786
#> 1981 15028 17977                                                      
#>        Dec
#> 1980 29740
#> 1981

#* Return Forecast Data
#* @list a The first number
#* @get /simple_fcast
function(){
  ts() %>% 
  forecast::ets() %>% 
  forecast::forecast()
}
#> function(){
#>   ts() %>% 
#>   forecast::ets() %>% 
#>   forecast::forecast()
#> }

reprex package(v0.2.1)于2018-11-14创建

1 个答案:

答案 0 :(得分:0)

答案是根据https://www.rplumber.io/docs/routing-and-input.html#

中的文档使用“消息正文”
#' @post /user
function(req, id, name){
  list(
    id = id,
    name = name,
    raw = req$postBody
  )
}

运行curl --data "id=123&name=Jennifer" "http://localhost:8000/user"将返回:

{
  "id": [123],
  "name": ["Jennifer"],
  "raw": ["id=123&name=Jennifer"]
}

我发现数组也可以传递给函数。