Ja, entweder eine Kopie von CRAN oder ein Repo mit lokalen Paketen ist einfach einzurichten. Vermutlich wollen Sie dies für Windows dies so tun:
- erstellen Top-Level-Verzeichnis auf Ihrem Webserver, sagen
R/
- die übliche Hierarchie erstellen dort in:
R/bin/windows/contrib/2.11
. Wenn Sie andere (frühere) Versionen unterstützen müssen, erstellen Sie einfach die Verzeichnisse 2.10
, 2.9
, ... neben dem Verzeichnis 2.11
.
Legen Sie die Pakete, die Sie in das Verzeichnis benötigen (etwa 2.11
), dann in dieses Verzeichnis wechseln und den folgenden Befehl ausführen PACKAGES
und PACKAGES.gz
Dateien für das Repository zu generieren:
tools::write_PACKAGES(".", type="win.binary")
Das ist alles, was es gibt - jetzt können Sie auf das Repository zugreifen, indem Sie auf die Adresse zeigen, die einen Befehl wie
update.packages(repos="http://my.local.server/R", ask=FALSE)
enthält
was ich sogar in R/zzz.R
für lokale Pakete mache, damit sie sich selbst aktualisieren.
bearbeiten etwa fünf + Jahre später: Und das drat Paket jetzt automatisiert viele dieser und glänzt vor allem, wenn Sie auch GitHub verwenden das Repository über http/https zu dienen (ist aber für andere oder lokales Hosting auch nützlich) .
Automatische Aktualisierung klingt sehr praktisch, aber ich verstehe nicht, wo Sie den Update-Befehl setzen. Ich habe mit 'zzz.R' und' .onLoad' gespielt, kann aber 'R CMD check ...' nicht bestehen. In gewisser Weise erscheint es etwas merkwürdig, das zu aktualisieren, was Sie gerade laden. – Backlin
Der Befehl update kann von jedem, der zum Repository gelangen kann, in R geschrieben werden. –
Weiter zu Dirks Kommentaren, wenn Sie die Paketbenutzer dazu bringen, ihre 'Rprofile.site'-Dateien (die beim Start jeder R-Sitzung ausgeführt werden) zu bearbeiten, um etwas wie' options (repos = c (getOption ("repos") MyCompanyRepo = "http: //my.local.server/R"))), dann können Ihre Benutzer Dinge wie 'install.packages (" meinpaket ")' tun, ohne auf einen Pfad verweisen zu müssen. –