Co oznacza „nie działa” na stronach pomocy języka R?


112

Czasami na stronie pomocy języka R w komentarzach pojawia się fraza „nie działa”. Sprawdź to na stronie pomocy dotyczącej „with ()”:

Examples
require(stats); require(graphics)
#examples from glm:
**## Not run:** 
library(MASS)
with(anorexia, {
    anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
                    family = gaussian)
    summary(anorex.1)
})
## End(**Not run**)

Co oznacza „nie działa” w przykładowym kodzie?


32
tylko pokrewna wskazówka. Przykładowy kod można uruchomić, wydając „example (glm)”.
Eduardo Leoni

4
To dobra wskazówka. I założę się, że zdecydowana większość użytkowników języka R nie jest tego świadoma.
Dan Goldstein

1
ale zauważ, że przykład (fn) nadal nie będzie przykładowym kodem zawiniętym wdontRun
czas

z wyjątkiem sytuacji, gdy ustawisz run.dontrunparametr naTRUE
Moody_Mudskipper

Odpowiedzi:


77

„nie uruchamiany” obejmuje kod, który nie powinien być wykonywany w examplefunkcji (np. czasochłonne części kodu, interakcja użytkownika, ...).

zobacz np . ?example:

Jak opisano szczegółowo w podręczniku Pisanie rozszerzeń języka R , autor strony pomocy może oznaczyć części przykładów dla dwóch reguł wyjątków

  • „dontrun” zawiera kod, którego nie należy uruchamiać.

  • „dontshow” zawiera kod, który jest niewidoczny na stronach pomocy, ale będzie uruchamiany zarówno przez narzędzia do sprawdzania pakietów, jak i przez funkcję „example ()”. Wcześniej było to „tylko testowe” i nadal jest akceptowane.


3
... skąd nie wiedziałem o tej funkcji?
Matt Parker,

5
To nie tylko czasochłonny kod, który zwykle jest umieszczany w \ dontrun {}. Kod, który wymaga wprowadzenia przez użytkownika, również musi znajdować się w środku dontrun, w przeciwnym razie nie przejdzieR CMD check
Dason,

2
Lub: kod zależny od pakietu, który może nie być zainstalowany na komputerze użytkownika. Jest wiele, wiele, wiele powodów, dla których warto używać \ dontrun {}
Jason

25

W podręczniku „Writing R Extensions” w sekcji o \ examples {...} jest powiedziane, że tak

Możesz użyć \ dontrun {} dla tekstu, który powinien być tylko pokazywany, ale nie uruchamiany, oraz \ dontshow {} dla dodatkowych poleceń do testowania, które nie powinny być pokazywane użytkownikom, ale będą uruchamiane przez przykład ()

Kiedy budujesz pakiet, cały kod w zamknięciu \ dontrun {} jest widoczny w pomocy jako

## Not run:
...
## End(**Not run**)

edycja: ta odpowiedź była wcześniejsza.


15

To dodaje \donttest{}i jest pobierane (dosłownie) z pakietów R. @ hadleya .

Jednak dla celów ilustracyjnych często przydatne jest dołączenie kodu, który powoduje błąd. \dontrun{}umożliwia zawarcie w przykładzie kodu, który nigdy nie jest używany. Istnieją jeszcze dwa inne polecenia specjalne. \dontshow{}jest uruchamiany, ale nie jest wyświetlany na stronie pomocy: może to być przydatne w przypadku nieformalnych testów. \donttest{}jest uruchamiany w przykładach, ale nie jest uruchamiany automatycznie w sprawdzaniu R CMD. Jest to przydatne, jeśli masz przykłady, których uruchomienie zajmuje dużo czasu. Poniżej podsumowano opcje.

Command      example    help       R CMD check
\dontrun{}                 x
\dontshow{}       x                          x
\donttest{}       x        x

2
Zauważ, że donttest jest teraz testowany
Tyler Rinker

1
Czy do przesłania pakietu musisz mieć jakieś dodatkowe komentarze w .Rd uzasadniające pominięcie bloku kodu? Otrzymałem pakiet sprawdzania niepowodzenia z powodu przykładu \ donttest {} i zastanawiam się, czy nie jest to tak proste, jak zmiana go na \ dontrun {}. Funkcja służy do pobierania danych z ftp, a komentarz CRAN to: "To nie jest komentowane w plikach .Rd. Zwróć uwagę, że example () uruchomi te sekcje".
Jeffrey Evans

Tak, to powinno być takie proste.
Tyler Rinker

@TylerRinker masz na myśli, że funkcja została zweryfikowana jako działająca lub kod z @donttest {} jest teraz uruchamiany przez CRAN podczas sprawdzania?
Tim

2
Tak, oto cytat z książki Hadley: „Dla ilustracji często przydatne jest włączenie kodu, który powoduje błąd. \ Dontrun {} pozwala na włączenie do przykładu kodu, który nie jest uruchamiany. (Kiedyś byłeś w stanie użyć \ donttest {} w podobnym celu, ale nie jest już zalecane, ponieważ jest faktycznie testowane.) ”
Tyler Rinker,

5

C & p z rozdziału 5.4 (Pliki dokumentacji R) MUST-TO-READ Tworzenie pakietów R: samouczek autorstwa Friedricha Leischa:

Sekcja przykładów powinna zawierać wykonywalny kod R, a automatyczne uruchamianie kodu jest częścią sprawdzania pakietu. Istnieją dwa specjalne polecenia znaczników dla przykładów:

dontrun : wszystko wewnątrz \ dontrun {} nie jest wykonywane przez testy lub przykład (). Jest to przydatne np. W przypadku funkcji interaktywnych, funkcji umożliwiających dostęp do Internetu itp. Nie używaj go niewłaściwie, aby ułatwić sobie życie, podając przykłady, których nie można wykonać.


3

Przykład kanoniczny może znajdować się na stronie pomocy dla rm:

## Not run: 
## remove (almost) everything in the working environment.
## You will get no warning, so don't do this unless you are really sure.
rm(list = ls())

## End(Not run)

Gdyby tak się stało, miałoby to oczywiście niepożądane skutki.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.