Zmieniano z sugestią Hadley
Można zrobić to nieco łatwiej przez:
getHTMLhelp <- function(...){
thefile <- help(...)
capture.output(
tools:::Rd2HTML(utils:::.getHelpFile(thefile))
)
}
Korzystanie tools:::Rd2txt
zamiast tools:::Rd2HTML
daje zwykły tekst. Po prostu pobranie pliku (bez żadnego parsowania) daje oryginalny format Rd, dzięki czemu możesz napisać własną funkcję parsowania, aby sparsować ją w obiekt (zobacz rozwiązanie @Jeroena, które wykonuje dobrą robotę w wyodrębnianiu wszystkich informacji do listy).
Funkcja ta wykonuje dokładnie te same argumenty jak help()
i zwraca wektor z każdym elementem jest linia w pliku, np:
> head(HelpAnova)
[1] "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"
[2] "<html><head><title>R: Anova Tables</title>"
[3] "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">"
[4] "<link rel=\"stylesheet\" type=\"text/css\" href=\"R.css\">"
[5] "</head><body>"
[6] ""
Lub:
> HelpGam <- getHTMLhelp(gamm,package=mgcv)
> head(HelpGam)
[1] "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"
[2] "<html><head><title>R: Generalized Additive Mixed Models</title>"
[3] "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">"
[4] "<link rel=\"stylesheet\" type=\"text/css\" href=\"R.css\">"
[5] "</head><body>"
[6] ""
Jedna wskazówka: upuść średniki. Poważnie, upuść je. To jest kod C, nie kod R. W R nie potrzebujesz ich, chyba że chcesz umieścić dwa polecenia w jednym wierszu i zdecydowanie nie rób tego. –
Lubię je. Często pomagają mi w debugowaniu, gdy zapominam o zamknięciu nawiasów. – Jeroen