Hola Miguel-Ángel esa instrucción la he puesto para que no me haga el break y se reinicie RStudio. Si quito esa instrucción y hago que se pase la salida al wiewer panel de Rstudio me aparece el mismo error pero además se aborta la sesión de RStudio y con la instrucción lo que cambia es que no aborta la sesión. Muchas gracias, Juan El 05/03/2018 a las 8:49, miguel.angel.rodriguez.muinos en sergas.es escribió:> Hola Juan. > > La verdad es que no te puedo dar una solución directa a tu problema pero tu enunciado me plantea algunas dudas (y quién sabe si eso puede llevarte a alguna parte). > > Veamos... Tienes un fichero app.R que ejecutas desde una instancia local de Shiny. Cuando usas un fichero app.R defines dos funciones (ui y server) y luego las lanzas con shinyApp(ui = ui, server = server). Lo que haces tú a mayores es incluir, despuès de la llamada a la app, una instrucción como esta: print(environment(show)) > Mi pregunta es la siguiente: Dónde se está ejecutando esa instrucción? > De hecho, mi pregunta es otra: Si tuvieras un Shiny montado como cliente/servidor en dos máquinas distintas y usaras (en vez de app.R) dos ficheros ui.R y server.R ... dónde pondrías esa instrucción? Dónde tendría que ejecutárse? En el cliente? En el servidor? > > Ya sé que, en tu escenario, funciona.. pero no será porque esa instrucción se ejectuta localmente al hacer el break del shinyApp() ¿? > Es eso lo que pretendes? > > > Un Saludo, > -- > Miguel Ángel Rodríguez Muíños > Dirección Xeral de Saúde Pública > Consellería de Sanidade > Xunta de Galicia > http://dxsp.sergas.es > > > > > > > ________________________________________ > De: R-help-es <r-help-es-bounces en r-project.org> en nombre de Juan Antonio Gil <jgil en edu.uned.es> > Enviado: domingo, 4 de marzo de 2018 19:17 > Para: Lista R > Asunto: [R-es] problema con shiny > > Estimados compañeros tengo un problema con shiny. Es un problema local de mi ordenador, porque en otro va si problemas pero no consigo saber ¿cómo arreglarlo?. He instalado incluso la nueva versión de Rstudio. Os explico: > > 1) lanzo el programa app.R, el ejemplo de shiny e intenta mostrar los resultados pero si hago: print(environment(show)) da como resultado > > Error in func(fname, ...) : app.R did not return a shiny.appobj object. > > pero he mirado en internet el error y no consigo descifrar el problema. > > ¿Qué puede ser? > > > Saludos, > > Juan > > > > -- > Juan Antonio Gil Pascual > Matemático, estadístico, especialista en Text Mining > correo: jmat1 en telefonica.net<mailto:jmat1 en telefonica.net> > web: www.jgil.acta.es<http://www.jgil.acta.es> > > AVISO LEGAL. Este mensaje puede contener informació...{{dropped:16}} > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > ________________________________ > > Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. > > Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. > > See more languages: http://www.sergas.es/aviso-confidencialidad > . >-- Juan Antonio Gil Pascual Matemático, estadístico, especialista en Text Mining correo: jmat1 en telefonica.net web: www.jgil.acta.es AVISO LEGAL. Este mensaje puede contener información reservada y confidencial. Si usted no es el destinatario no está autorizado a copiar, reproducir o distribuir este mensaje ni su contenido. Si ha recibido este mensaje por error, le rogamos que lo notifique al remitente. Le informamos de que sus datos personales, que puedan constar en este mensaje, están incorporados a un fichero titularidad de la UNED cuya finalidad es la de mantener el contacto con usted. En cualquier momento podrá ejercer sus derechos de acceso, rectificación, cancelación y oposición ante la UNED, Departamento de Política Jurídica de Seguridad de la Información<http://portal.uned.es/portal/page?_pageid=93,24432769,93_24432770&_dad=portal&_schema=PORTAL>, o a través de la Sede electrónica<https://sede.uned.es/> de la Universidad.
miguel.angel.rodriguez.muinos en sergas.es
2018-Mar-05 11:30 UTC
[R-es] problema con shiny
Bueno, aquí se nos juntan varias cosas.... En primer lugar, no es recomendable usar el viewer panel de RStudio (ni la ejecución en ventana); lo que se recomienda es realizar la ejecución "External" (es decir, lanzarlo al navegador por defecto). Hay muchas cosas que no te van a funcionar si no usas un navegador externo. No en este caso tan sencillo... aunque, si te fijas, cuando lo ejecutas contra el viewer panel te aparece el siguiente error: Listening on http://127.0.0.1:5615 ERROR: [on_request_read] connection reset by peer Y ese error no aparece contra el navegador. Eso por una parte. Por otra parte, el valor de print(environment(show)) aparece justo antes del error Listening on http://127.0.0.1:5615 <environment: 0x000000000977ed20> Warning: Error in func: app.R did not return a shiny.appobj object. Stack trace (innermost first): 1: runApp Error : app.R did not return a shiny.appobj object. con lo cual consigues que se ejecute (porque estás trabajando con una instancia en local del server) pero el programa (y esto ya es interpretación mía) te está diciendo que no tiene ningún objeto que ejecutándolo en el servidor pueda hacerlo llegar al ui (user interface). Insisto en lo de antes: si tienes en servidor en Singapur y ejecutas tu ejemplo allí, qué crees que va a pasar con esa instucción? se ejecutará? en caso de hacerlo... te devolverá algo? Y si no usas un solo fichero app.R, sino dos (ui.R y server.R) ... dónde pretendes poner esa instrucción? en global.R? Mi opinión es que no funcionará (sobre todo porque el cliente es un navegador, esa instrucción se ejecutaría en el servidor y no está asociada a un renderPrint que le pase el valor a un verbatimTextOutput o similar. O sea, que tendrías que manejar algo similar a esto..... 1.- En el "server" habría que incluir algo como esto output$result<-renderPrint({environment(show)}) 2.- En el "ui" lo capturaríamos con un verbatimTextOutput("result") Y ya para finalizar... a qué te refieres cuando dices que se te "reinicia" y "aborta la sesión" el RStudio? Se cierra? Un Saludo, Miguel. ________________________________________ De: Juan Antonio Gil <jgil en edu.uned.es> Enviado: lunes, 5 de marzo de 2018 11:25 Para: Rodríguez Muíños, Miguel Ángel; r-help-es en r-project.org Asunto: Re: [R-es] problema con shiny Hola Miguel-Ángel esa instrucción la he puesto para que no me haga el break y se reinicie RStudio. Si quito esa instrucción y hago que se pase la salida al wiewer panel de Rstudio me aparece el mismo error pero además se aborta la sesión de RStudio y con la instrucción lo que cambia es que no aborta la sesión. Muchas gracias, Juan El 05/03/2018 a las 8:49, miguel.angel.rodriguez.muinos en sergas.es escribió:> Hola Juan. > > La verdad es que no te puedo dar una solución directa a tu problema pero tu enunciado me plantea algunas dudas (y quién sabe si eso puede llevarte a alguna parte). > > Veamos... Tienes un fichero app.R que ejecutas desde una instancia local de Shiny. Cuando usas un fichero app.R defines dos funciones (ui y server) y luego las lanzas con shinyApp(ui = ui, server = server). Lo que haces tú a mayores es incluir, despuès de la llamada a la app, una instrucción como esta: print(environment(show)) > Mi pregunta es la siguiente: Dónde se está ejecutando esa instrucción? > De hecho, mi pregunta es otra: Si tuvieras un Shiny montado como cliente/servidor en dos máquinas distintas y usaras (en vez de app.R) dos ficheros ui.R y server.R ... dónde pondrías esa instrucción? Dónde tendría que ejecutárse? En el cliente? En el servidor? > > Ya sé que, en tu escenario, funciona.. pero no será porque esa instrucción se ejectuta localmente al hacer el break del shinyApp() ¿? > Es eso lo que pretendes? > > > Un Saludo, > -- > Miguel Ángel Rodríguez Muíños > Dirección Xeral de Saúde Pública > Consellería de Sanidade > Xunta de Galicia > http://dxsp.sergas.es >________________________________ Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso-confidencialidad
Muchas gracias Miguel-Ángel por tus explicaciones, pero empezando por el final digo reinicia pero en realidad es que se aborta el proceso. Independiente de la instrucción print la cuestión es que el programa en mi ordenador aborta siempre de forma independiente que lo haga en wiewer externa, interna o "medio-pensionista". Sin embargo en otro ordenador que tengo con windows 10 y R de 32 bits el proceso siempre se realiza satisfactoriamente. Pienso que es algo relacionado con el localhost pero mis conocimientos de informática no "llegan a más". Saludos, Juan El 05/03/2018 a las 12:30, miguel.angel.rodriguez.muinos en sergas.es escribió:> Bueno, aquí se nos juntan varias cosas.... > > En primer lugar, no es recomendable usar el viewer panel de RStudio (ni la ejecución en ventana); lo que se recomienda es realizar la ejecución "External" (es decir, lanzarlo al navegador por defecto). Hay muchas cosas que no te van a funcionar si no usas un navegador externo. No en este caso tan sencillo... aunque, si te fijas, cuando lo ejecutas contra el viewer panel te aparece el siguiente error: > Listening on http://127.0.0.1:5615 > ERROR: [on_request_read] connection reset by peer > Y ese error no aparece contra el navegador. > Eso por una parte. > > Por otra parte, el valor de print(environment(show)) aparece justo antes del error > Listening on http://127.0.0.1:5615 > <environment: 0x000000000977ed20> > Warning: Error in func: app.R did not return a shiny.appobj object. > Stack trace (innermost first): > 1: runApp > Error : app.R did not return a shiny.appobj object. > con lo cual consigues que se ejecute (porque estás trabajando con una instancia en local del server) pero el programa (y esto ya es interpretación mía) te está diciendo que no tiene ningún objeto que ejecutándolo en el servidor pueda hacerlo llegar al ui (user interface). Insisto en lo de antes: si tienes en servidor en Singapur y ejecutas tu ejemplo allí, qué crees que va a pasar con esa instucción? se ejecutará? en caso de hacerlo... te devolverá algo? Y si no usas un solo fichero app.R, sino dos (ui.R y server.R) ... dónde pretendes poner esa instrucción? en global.R? > Mi opinión es que no funcionará (sobre todo porque el cliente es un navegador, esa instrucción se ejecutaría en el servidor y no está asociada a un renderPrint que le pase el valor a un verbatimTextOutput o similar. > O sea, que tendrías que manejar algo similar a esto..... > 1.- En el "server" habría que incluir algo como esto > output$result<-renderPrint({environment(show)}) > 2.- En el "ui" lo capturaríamos con un > verbatimTextOutput("result") > > Y ya para finalizar... a qué te refieres cuando dices que se te "reinicia" y "aborta la sesión" el RStudio? Se cierra? > > Un Saludo, > Miguel. > > > > ________________________________________ > De: Juan Antonio Gil <jgil en edu.uned.es> > Enviado: lunes, 5 de marzo de 2018 11:25 > Para: Rodríguez Muíños, Miguel Ángel; r-help-es en r-project.org > Asunto: Re: [R-es] problema con shiny > > Hola Miguel-Ángel esa instrucción la he puesto para que no me haga el > break y se reinicie RStudio. Si quito esa instrucción y hago que se pase > la salida al wiewer panel de Rstudio me aparece el mismo error pero > además se aborta la sesión de RStudio y con la instrucción lo que cambia > es que no aborta la sesión. > > Muchas gracias, > > > Juan > > > > El 05/03/2018 a las 8:49, miguel.angel.rodriguez.muinos en sergas.es escribió: >> Hola Juan. >> >> La verdad es que no te puedo dar una solución directa a tu problema pero tu enunciado me plantea algunas dudas (y quién sabe si eso puede llevarte a alguna parte). >> >> Veamos... Tienes un fichero app.R que ejecutas desde una instancia local de Shiny. Cuando usas un fichero app.R defines dos funciones (ui y server) y luego las lanzas con shinyApp(ui = ui, server = server). Lo que haces tú a mayores es incluir, despuès de la llamada a la app, una instrucción como esta: print(environment(show)) >> Mi pregunta es la siguiente: Dónde se está ejecutando esa instrucción? >> De hecho, mi pregunta es otra: Si tuvieras un Shiny montado como cliente/servidor en dos máquinas distintas y usaras (en vez de app.R) dos ficheros ui.R y server.R ... dónde pondrías esa instrucción? Dónde tendría que ejecutárse? En el cliente? En el servidor? >> >> Ya sé que, en tu escenario, funciona.. pero no será porque esa instrucción se ejectuta localmente al hacer el break del shinyApp() ¿? >> Es eso lo que pretendes? >> >> >> Un Saludo, >> -- >> Miguel Ángel Rodríguez Muíños >> Dirección Xeral de Saúde Pública >> Consellería de Sanidade >> Xunta de Galicia >> http://dxsp.sergas.es >> > ________________________________ > > Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. > > Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. > > See more languages: http://www.sergas.es/aviso-confidencialidad > . >-- Juan Antonio Gil Pascual Matemático, estadístico, especialista en Text Mining correo: jmat1 en telefonica.net web: www.jgil.acta.es AVISO LEGAL. Este mensaje puede contener información reservada y confidencial. Si usted no es el destinatario no está autorizado a copiar, reproducir o distribuir este mensaje ni su contenido. Si ha recibido este mensaje por error, le rogamos que lo notifique al remitente. Le informamos de que sus datos personales, que puedan constar en este mensaje, están incorporados a un fichero titularidad de la UNED cuya finalidad es la de mantener el contacto con usted. En cualquier momento podrá ejercer sus derechos de acceso, rectificación, cancelación y oposición ante la UNED, Departamento de Política Jurídica de Seguridad de la Información<http://portal.uned.es/portal/page?_pageid=93,24432769,93_24432770&_dad=portal&_schema=PORTAL>, o a través de la Sede electrónica<https://sede.uned.es/> de la Universidad.