[R-es] Api R
Javier Nieto
mac_javi en hotmail.com
Mie Jun 21 09:18:22 CEST 2017
Hola a tod en s, buenas noches
Tengo el siguiente problema:
Necesito ejecutar un script de R en un servidor remotamente, pues el script es parte de un sistema. Estoy utilizando el paquete plumber para realizarlo. Si tomo las funciones de ejemplo de la documentación, funciona:
#* @get /mean
normalMean <- function(samples=10){
data <- rnorm(samples)
mean(data)
}
#* @post /sum
addTwo <- function(a, b){
as.numeric(a) + as.numeric(b)
}
lo llamo de esta forma y funcionan bien:
curl "http://localhost:8000/mean"
[-0.254]
$ curl "http://localhost:8000/mean?samples=10000"
[-0.0038]
$ curl --data '{"a":4, "b":5}' http://localhost:8000/sum
[9]
El último comando utiliza un el formato json, también funciona si lo hago de esta forma
curl --data @datos_sumar.json http://localhost:8000/sum
donde '{"a":4, "b":5}' esta dentro del archivo datos_sumar.json
La pregunta es, ¿cómo puedo pasarle un archivo json el cual dentro del código sea un dataframe?
He intentado con
#* @get /prueba
json <- function(df){
require(jsonlite)
print(ls())
mydf <- fromJSON(df)
mydf$sueldo <- c(20000, 22000, 0, 15000)
mydf
}
y con el archivo con el contenido:
{"df":
[
{"Name" : "Mario", "Age" : 32, "Occupation" : "Plumber"},
{"Name" : "Peach", "Age" : 21, "Occupation" : "Princess"},
{},
{"Name" : "Bowser", "Occupation" : "Koopa"}
]
}
y así también pero no doy con la solución
[
{"Name" : "Mario", "Age" : 32, "Occupation" : "Plumber"},
{"Name" : "Peach", "Age" : 21, "Occupation" : "Princess"},
{},
{"Name" : "Bowser", "Occupation" : "Koopa"}
]
curl --data @empleados.json http://localhost:8000/prueba
¿Por favor alguien me podría ayudar?
muchas gracias
Saludos
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es