Czy istnieje predefiniowana lokalizacja, w której pakiet R może przechowywać dane z pamięci podręcznej? Dane powinny być przechowywane w różnych sesjach. Myślałem o stworzeniu podkatalogu ${R_LIBS_USER}/package_name
, ale nie jestem pewien, czy jest to przenośne i czy jest to "dozwolone", jeśli mój pakiet jest zainstalowany na cały system.Czy istnieje trwałe miejsce, które jest zawsze zapisywalne, które może być używane jako pamięć podręczna danych przez pakiet?
Idea jest następująca: Utwórz skrypt R mydata.R
w podkatalogu data
pakietu, który będzie wykonywany przez wywołanie data(mydata)
(zgodnie z dokumentacją data()
). Ten skrypt ładowałby dane z Internetu i zapisywał je w pamięci podręcznej, jeśli nie był wcześniej buforowany. (Jeśli dane zostały już zapisane w pamięci podręcznej, pamięć podręczna zostanie wykorzystana.) Dodatkowo zostanie udostępniona funkcja umożliwiająca unieważnienie pamięci podręcznej i/lub sprawdzenie, czy nowsza wersja danych jest dostępna online.
to z dokumentacji data()
:
Obecnie cztery formaty plików danych są obsługiwane:
pliki kończący '.R' lub '.r' są źródłem() dw, z katalogiem roboczym R tymczasowo zmienionym na katalog zawierający odpowiedni plik. (Dane gwarantuje, że pakiet utils jest dołączony, w przypadku, gdy zostały uruchomić poprzez dane Utils ::.)
...
Rzeczywiście, tworząc plik fortytwo.R
w podkatalogu data
opakowania z następujących zawartości:
fortytwo = data.frame(answer=42)
i wykonującego data(fortytwo)
tworzy zmienną ramki danych fortytwo
. Teraz pytanie brzmi: Gdzie byłoby fortytwo.R
buforować dane, gdyby było to trudne do obliczenia?
EDIT: myślę o tworzeniu dwóch pakietów: Pakiet „dane”, które dostarcza danych oraz pakiet „kod”, który działa na nim. Pytanie dotyczy pakietu "data": Gdzie można przechowywać pliki w pamięci masowej dla poszczególnych użytkowników, aby było trwałe w sesjach R i było dostępne z różnych projektów R?
Powiązane: Package that downloads data from the internet during installation.
Być może zechcesz rzucić okiem na https://github.com/hadley/rappdirs - jest to port AppDirs, który jest biblioteką Pythona, która próbuje znaleźć odpowiednie katalogi w sposób specyficzny dla systemu operacyjnego. – hadley
Po prostu próbuję wyjaśnić: czy chodzi ci o to, gdzie można przechowywać dane po przetworzeniu przez skrypt R? Innymi słowy, czy rzeczywiście twoje pytanie dotyczy danych z pakietu danych lub danych generowanych jako dane wyjściowe z jakiegokolwiek przetwarzania, które miało miejsce? To * brzmi * jak ten drugi. – A5C1D2H2I1M1N2O1R2T1
@hadley: Czy jest szansa, że pojawi się ona w CRAN w najbliższym czasie? Jeśli nie ma na to sposobu R (jak umieszczenie go w podkatalogu '$ {R_USER_LIBS}), z przyjemnością skorzystam z twojego pakietu. – krlmlr