2016-12-30 1 views
7

Ich habe eine Map-Broschüre, die ich in einer HTML-Datei in einem bestimmten Ordner speichern möchte. Ich verwende Windows 7.savewidget von htmlwidget in R, kann nicht speichern HTML-Datei in einem anderen Ordner

ich folgendes versucht:

library(htmlwidgets) 
saveWidget(map_leaflet, file="ressources/test.html") 

library(htmlwidgets) 
saveWidget(map_leaflet, file="ressources\\test.html") 

library(htmlwidgets) 
path_name <- file.path("ressources", "test.html", fsep="\\") 
saveWidget(map_leaflet, file=path_name) 

library(htmlwidgets) 
path_name <- paste("ressources", "test.html", sep="/") 
saveWidget(map_leaflet, file=path_name) 

Als Fehlermeldung, auf der Sitzung Rstudio je, ich entweder

haben

1) Fehler bei setwd (dir): kann sich nicht ändern Verzeichnis

2) funktioniert nicht Pfad

wie diese

Wenn ich spare nur gefunden:

library(htmlwidgets) 
saveWidget(map_leaflet, file="test.html") 

Es funktioniert perfekt.

Vielen Dank im Voraus für Ihre Hilfe.

+0

es klingt wie das Verzeichnis 'Ressourcen' existiert nicht von der Stelle, wo der Code ausgeführt wird. Haben Sie versucht, 'getwd()' in R zu überprüfen, bevor Sie diesen Code ausführen, um sicherzustellen, dass Sie ihn aus dem richtigen Verzeichnis ausführen, und 'dir()', um sicherzustellen, dass 'Ressourcen' an dieser Stelle vorhanden sind? Wenn beide korrekt aussehen, kann es eine weniger günstige Lösung sein, 'setwd (" ressources ")' zu verwenden, um zu diesem Verzeichnis zu wechseln, bevor Sie versuchen, zu speichern. – user5359531

+2

Hallo, ich habe versucht, getwd() und dir() und Ressourcen richtig angezeigt. Ich habe dann diesen 'Pfad <- file.path (getwd()," ressources "," test.html ")' 'saveWidget (map_leaflet, file = Pfad)' versucht und dieses Mal funktioniert es perfekt. Ich denke, es brauchte nur den kompletten Weg. Können Sie Ihren Kommentar als Antwort formulieren, damit ich die Frage als beantwortet markieren kann? Danke – tuttifolies

+0

Meine Tipps waren nur zur Fehlerbehebung. Es hört sich immer noch so an, als würden Sie den Code nicht ausführen, von dem Sie glauben, dass Sie es sind. Wie Sie jedoch herausgefunden haben, sind die Verwendung vollständiger Pfade und die Verwendung von 'file.path()' sicherer, um Pfade sicher zu übergeben. Sie können auch die Funktion 'normalizePath()' betrachten. Es kann Ihnen helfen, den absoluten Pfad zu erhalten, und kann Ihnen auch mitteilen, ob der Pfad nicht existiert oder nicht korrekt ist. Versuchen Sie diese und Sie werden sehen: 'normalizePath (". ")', 'NormalizePath (" ~ ")', 'normalizePath (" ./ foo ")' <- gibt einen Fehler, wenn 'foo' nicht existiert. Außerdem können Sie möglicherweise keine relativen Pfade für 'file =' verwenden – user5359531

Antwort

6

Einverstanden.

hier eine Abhilfe:

f<-"ressources\\test.html" 
saveWidget(map_leaflet,file.path(normalizePath(dirname(f)),basename(f))) 

Die Fragen zu sein scheinen, dass saveWidget nicht mit relativen Pfadnamen funktioniert und normalizePath für Pfade zu Dateien nicht funktioniert, die es gibt noch getan.

Ich würde dies einen Fehler in SaveWidget nennen.

Verwandte Themen