2017-07-03 1 views
2

J'ai écrit une application brillante (serveur & ui) et il fonctionne très bien sur mon ordinateur. Aujourd'hui, j'essaye de l'héberger sur shinyapps.io et d'avoir quelques problèmes. Je ne peux pas extraire les données de ma machine locale, elle doit être hébergée en ligne quelque part. Mais le source data est seulement disponible en ligne comme un zip. J'ai trouvé quelques ressources sur la façon d'utiliser R pour télécharger un fichier zip sur sa machine locale, mais ils semblent tous avoir besoin de placer le fichier dans un répertoire temporaire local, et je ne pense pas que je puisse le faire avec un serveur hébergé brillant app. Donc, ma question est comment décompresser puis accéder/charger/utiliser des fichiers CSV directement dans R/Shiny.Lire csv de zip dans l'application brillante sans compter sur les annuaires locaux

Le code d'article pertinent est ci-dessous. C'est la section que je dois remplacer. Faites-moi savoir s'il serait utile d'afficher plus de code - je sais que c'est prévu, mais dans ce cas, je ne suis pas sûr que cela aiderait.

#load data 
library(shiny) 
base <- read.csv("/Users/OldJess/Dropbox/R Stuff(Home)/ShinyNames/data/NationalNames.csv", 
       stringsAsFactors = FALSE, 
       na.strings = c("NA","","#MULTIVALUE")) 

Mon application brillante est ici: https://jesstme.shinyapps.io/shinynames/

Répondre

0

Je ne l'avais pas réalisé que Shiny me permet de télécharger les données de source d'origine (comme CSV) à partir de mon ordinateur pour une utilisation dans mon application, ainsi que l'esprit h les fichiers du serveur &. Il y a des limites de taille de fichier mais la solution fonctionne bien pour moi.

1

Serait-il possible de laisser l'utilisateur télécharger les données de l'ordinateur local en utilisant le bouton du navigateur brillant, puis décompressez-le à l'aide read.table? Pour cette fonctionnalité read.table, voir cette réponse: https://stackoverflow.com/a/36047026/7860688 (copié ici pour être complet, en supposant qu'un seul fichier csv intérieur que zip):

data <- read.table("Sales.zip", nrows=10, header=T, quote="\"", sep=",") 

fichiers peuvent être téléchargés en utilisant la fonction fileInput brillante comme ci-dessous :

 fileInput("file1", "Choose CSV File", 
    accept = c(
     "text/csv", 
     "text/comma-separated-values,text/plain", 
     ".csv") 
    ) 

Voir la documentation ici: https://shiny.rstudio.com/reference/shiny/latest/fileInput.html

+0

C'est certainement faisable mais pas souhaitable. J'espère que les gens pourront interagir avec l'application sans avoir à télécharger quelque chose. – jesstme