2016-01-14 20 views
6

Próbuję użyć pakietu SemiMarkov i chcę zmienić tam jedną małą linię kodu. Zrobiłem trochę kopania poprzez:r modyfikować i przebudowywać pakiet

getAnywhere("semiMarkov") 

& mam stwierdziła, że ​​chcę zmienić ten wiersz:

hessian <- diag(ginv(hessian(V, solution))) 

spróbować czegoś takiego:

hessian <- diag(ginv(pracma::hessian(V, solution))) 

Jak to zrobić o tym? Czy muszę odbudować pakiet od zera, a jeśli tak, to czy potrzebuję rTools itp. Do tego, czy istnieje proste obejście (jestem odpowiednim nowicjuszem R)? Zrobiłem kilka wyszukiwania online i nie mogę znaleźć nic oczywistego. Wszelkie pomysły/wskaźniki wdzięcznie doceniane.

Odpowiedz

8

Środowisko Linux

Począwszy od pobrania źródła pakietu z CRAN.

Pobierz i rozpakuj źródło:

wget https://cran.r-project.org/src/contrib/SemiMarkov_1.4.2.tar.gz 
tar -xvzf SemiMarkov_1.4.2.tar.gz 

ta powinna doprowadzić do katalogu o nazwie SemiMarkov . Otwórz źródło (cd SemiMarkov) i zmodyfikuj w razie potrzeby.

Następnie budować zmiany:

cd .. 
R CMD build SemiMarkov/ 

Spowoduje to nowy plik archiwum o nazwie SemiMarkov_1.4.2.tar.gz.

Wreszcie zainstalować zmodyfikowaną Archive:

R CMD INSTALL SemiMarkov_1.4.2.tar.gz 

środowisku Windows

Jestem mniej zaznajomieni z platformą Windows. * Narzędzia nix są dostępne w Cygwin, ale jest to bolesne. Zamiast tego, jak zaznacza Josh O'Brien, powinieneś postępować zgodnie z Windows-specific instructions w podręczniku R Installation and Administration.

+1

@Rob Ogólna rada (że powinieneś skompilować zmodyfikowaną wersję pakietu) jest świetna.Jednak jako wieloletni użytkownik systemu Windows, który napisał i zmodyfikował wiele pakietów, bardzo bym ** zdecydowanie odradzał próbowanie tego z Cygwin. –

+1

Zamiast tego powinieneś * dokładnie * postępować zgodnie z [instrukcjami specyficznymi dla systemu Windows] (https://cran.r-project.org/doc/manuals/r-release/R-admin.html#The-Windows-toolset) w podręczniku R Installation and Administration. (W załączonym dodatku znajduje się: "* Ten dodatek zawiera wiele normatywnych komentarzy, które pojawiają się tutaj w wyniku gorzkiego doświadczenia." * Sugeruję, abyś potraktował to ostrzeżenie poważnie, jeśli chcesz uzyskać stosunkowo bezbolesne doświadczenie!) Kiedy już masz odpowiedni zestaw narzędzi, zainstalowanie zmodyfikowanego pakietu będzie tak proste, jak wykonanie 'devtools :: install (" SemiMarkov ")'. –

+0

Wielkie pionts @ JoshO'Brien :) Mam nadzieję, że nie masz nic przeciwko, zaktualizowałem swoją odpowiedź z twoją zawartością. Zapraszam do edycji! – blong

7

Jeśli chcesz po prostu przetestować efekt tej zmiany w interaktywnej sesji R, możesz to zrobić, używając trace(). Oto jak:

  1. Rodzaj trace("semiMarkov", edit=TRUE)
  2. W edytorze tekstowym, który uruchamia, edytować linię zainteresowania.
  3. Zapisz zmodyfikowany plik.
  4. Zamknij edytor tekstu
  5. Powrót w R, użyj zmodyfikowanej funkcji.
+0

Bardzo dziękuję, to również bardzo pomocne w szybkim testowaniu i bardzo proste! – Rob