2017-09-05 100 views
5

Edytuję plik oceny R (.Rmd), który ma wiele bloków kodu R, aby przenieść grupy tych bloków kodu do dokumentów "podrzędnych", aby uprościć zmianę sekcji (jeśli nic więcej). Przekształcając sekcje w dokumenty podrzędne, chciałbym przetestować nowy dokument podrzędny bez uruchamiania pozostałych bloków i innych elementów podrzędnych. Jednakże, kiedy używam do komentowania tych sekcji, bloki R nadal działają (ale RStudio sprawia, że ​​sekcje "wyglądają" tak, jakby zostały skomentowane).jak skomentować bloki kodów R w R markdown?

Jeśli wyeliminuję poprzedzające i końcowe "s" (tj. Znaczniki bloku kodu), komentarz działa poprawnie. Jednak, jak już powiedziałem, mam wiele bloków kodu i coś podobnego byłoby wygodniejsze.

Jak mogę skomentować bloki kodu R, aby nie działały?

+2

Nie jestem pewien, czy tego właśnie szukasz, ale jeśli podświetlisz (przynajmniej) jeden rząd poniżej fragmentu kodu R do (co najmniej) jednego wiersza powyżej fragmentu kodu R, a następnie wpisz Command-Shift-C, RStudio umieści znaczniki komentarzy html na porcji. – eipi10

+1

Powinienem wspomnieć: "Command-Shift-C" jest dla OSX. W Windows zakładam, że jest to ctrl-shift-C (chociaż działa to również na OSX). – eipi10

+0

Tego właśnie szukałem! Używałem podobnie jak obsługują komentarze wielowierszowe (jak \ ** ... * \ w java), ale tak się nie dzieje. Jednak Command-Shift-C w RStudio (na OSX) zamienia blok w zestaw komentarzy pojedynczych linii - działa idealnie. Dzięki! –

Odpowiedz

4

W dokumencie Rmarkdown, możemy zastosować pewne opcje do każdego kawałka kodu R, który określa, czy kod wewnątrz zostanie uruchomiony, drukowane komunikaty o błędach, pokaz itp

mieć specyficzny fragment kodu nie biegać, używać:

```{r cars, eval=FALSE} 
summary(cars) 
``` 

mieć specyficzny fragment kodu nie uruchomić lub wydrukować do utworzonego dokumentu, przeznaczenie:

```{r cars, eval=FALSE, echo=FALSE} 
summary(cars) 
``` 

„PRAWDA” służy do przeciwnych skutków i jest domyślny.

Jeśli masz wiele fragmentów kodu, które chcesz skomentować, możesz skorzystać z sugestii z @ eipi10 (dziękuję) i użyć funkcji Znajdź/Zamień z wybraną opcją wyraŜenia regularnego. Tak więc znalezisko to "(` `` r. *) ", A zamiennikiem będzie" \ 1, eval = FALSE, echo = FALSE} "(bez podwójnych cudzysłowów).

+0

Dzięki, ale o wiele szybciej było komentować bloki. –

+0

To zależy od tego, ile kolejnych bloków próbujesz skomentować za jednym razem, czego nie określiłeś. Niezależnie od tego, ta odpowiedź jest nadal najlepszym rozwiązaniem dla przeciętnego przypadku użycia, dla innych, którzy mogą poszukiwać tego. – www

+1

Możesz szybciej wdrożyć to podejście, używając opcji 'regex' z narzędziem Znajdź/Zamień. Wzorzec znajdowania będzie miał postać '(' '' r * *)}, a zamieniany wzorzec będzie miał postać '\ 1, eval = FALSE, echo = FALSE}'. – eipi10

6

W RStudio jeśli kulminacyjnym z (co najmniej) jednym rzędzie powy fragmentu kodu r (przynajmniej) ostatniego rzędu fragmentu kodu r, i Ctrl-shift-C (w systemie OSX lub Windows) lub Command-Shift-C (tylko OSX), RStudio umieści znaczniki komentarzy html na porcji.

Na przykład:

```{r cars} 
summary(cars) 
plot(pressure) 
``` 

Po zaznaczeniu tego i typ Ctrl-Shift-C, to staje się:

<!-- ```{r cars} --> 
<!-- summary(cars) --> 
<!-- plot(pressure) --> 
<!-- ``` --> 

selektywnie wykomentuj wiele fragmentów, można użyć RStudio znaleźć/zastąpić narzędzie z opcją sprawdzania regex. Wymaga dwóch zastępczych kroków (prawdopodobnie można to zrobić w jednym kroku, ale nie jestem pewien, jak wykonać wyra enie do przechwycenia w wielu liniach w RStudio).

Krok 1: Komentarz na pierwszej linii jednego lub kilku fragmentów:

Znajdź: (```{r.*)
Wymienić: <!--\1

Krok 2: Komentarz na ostatnią linię jednego lub więcej Kawałki:

Znajdź: (```)$
Wymienić: \1-->


1 musi zawierać wiersz powyżej fragmencie w podświetleniem. W przeciwnym razie RStudio umieści znaczniki komentarza R (#) na początku każdego wiersza porcji, a skomentowane linie pojawią się jako czysty tekst w dokumencie wyjściowym.

+0

Nie zdawałem sobie sprawy, że to możliwość R Studio. Za każdym razem, gdy próbowałem skomentować fragment, zawsze otrzymałem '#'. Może to pomóc w podkreśleniu w twojej odpowiedzi, że to _only_ działa, jeśli podświetlisz co najmniej jeden wiersz nad częścią. (W R Studio 1.0.143, podświetlanie od jednego powyżej do końca fragmentu działa, a wyróżnienie od początku fragmentu do jednego wiersza poniżej końca daje symbol komentarza '# '). – Benjamin

+0

Zrobiłeś to. Chyba miałem na myśli odważenie tej części zdania. – Benjamin

+0

Podoba mi się. Dzięki. – Benjamin