2017-09-05 22 views
5

Tôi đang chỉnh sửa tệp đánh dấu R (.Rmd) có nhiều khối mã R để di chuyển các nhóm của các khối mã đó thành tài liệu "con" để đơn giản hóa việc sắp xếp lại các phần (nếu không có gì khác). Khi tôi chuyển đổi các phần sang tài liệu con, tôi muốn kiểm tra tài liệu con mới mà không cần chạy phần còn lại của các khối và các trẻ khác. Tuy nhiên, khi tôi sử dụng để bình luận ra những phần, các khối R vẫn chạy (nhưng RStudio làm cho các phần "nhìn" như thể chúng đã được nhận xét).cách nhận xét các khối mã R trong đánh dấu R?

Nếu tôi loại bỏ "` `` "s trước đó và sau đó (tức là, các ký hiệu khối mã), chú thích hoạt động tốt. Tuy nhiên, như tôi đã nói, tôi đã có rất nhiều khối mã và một cái gì đó như thế sẽ thuận tiện hơn.

Vì vậy, làm cách nào để tôi nhận xét các khối mã R để chúng không chạy?

+2

Tôi không chắc chắn nếu đây là những gì bạn đang tìm kiếm, nhưng nếu bạn làm nổi bật từ (ít nhất) một hàng bên dưới một đoạn mã R để (ít nhất) một hàng trên đoạn mã R, và sau đó gõ Command-Shift-C, RStudio sẽ đặt các thẻ nhận xét html trên đoạn văn. – eipi10

+1

Tôi nên đề cập: "Command-Shift-C" là dành cho OSX. Trên Windows, tôi giả định đó là ctrl-shift-C (mặc dù điều này cũng hoạt động trên OSX). – eipi10

+0

Đó là những gì tôi đang tìm kiếm! Tôi đã sử dụng các như nó hỗ trợ ý kiến ​​đa dòng (như \ ** ... * \ trong java), nhưng điều đó dường như không phải là trường hợp. Tuy nhiên, Command-Shift-C trong RStudio (trên OSX) biến khối thành một tập hợp các bình luận dòng đơn - hoạt động hoàn hảo. Cảm ơn! –

Trả lời

4

Trong một tài liệu Rmarkdown, chúng ta có thể áp dụng tùy chọn nhất định để mỗi R đang đoạn xác định xem mã bên trong sẽ được chạy, in, hiển thị lời nhắn lỗi, vv

Để có một mã đoạn cụ thể không chạy, sử dụng:

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

để có một mã đoạn cụ thể không chạy hoặc in vào doc tạo, sử dụng:

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

"TRUE" được sử dụng cho những tác động ngược lại và là mặc định.

Nếu bạn có nhiều khối mã bạn cần phải nhận xét, bạn có thể lấy đề xuất từ ​​@ eipi10 (cảm ơn) và sử dụng tìm/thay thế bằng tùy chọn regex được chọn. Vì vậy, tìm thấy sẽ là "(` `` {r. *) ", Và thay thế sẽ là" \ 1, eval = FALSE, echo = FALSE} "(không có dấu ngoặc kép).

+0

Cảm ơn, nhưng nhanh hơn rất nhiều để chỉ nhận xét các khối. –

+0

Điều đó phụ thuộc vào số lượng khối liên tiếp bạn đang cố gắng nhận xét cùng một lúc mà bạn không chỉ định. Điều đó sang một bên, câu trả lời này vẫn là giải pháp tốt nhất cho trường hợp sử dụng trung bình, cho những người khác có thể đang tìm kiếm điều này. – www

+1

Bạn có thể thực hiện phương pháp này nhanh hơn bằng cách sử dụng tùy chọn 'regex' bằng công cụ tìm/thay thế. Mẫu tìm kiếm sẽ là '(' '' {r. *)} 'Và mẫu thay thế sẽ là' \ 1, eval = FALSE, echo = FALSE} '. – eipi10

6

Trong RStudio, nếu bạn nổi bật từ (ít nhất) một dòng trên một đoạn đang R để (ít nhất) hàng cuối cùng của mã R đoạn, và sau đó gõ ctrl-shift-C (trong OSX hoặc Windows) hoặc lệnh-shift-C (chỉ OSX), RStudio sẽ đặt các thẻ nhận xét html trên đoạn văn bản.

Ví dụ:

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

Sau khi nêu bật này và gõ ctrl-shift-C, điều này trở thành:

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

Để chọn lọc nhận xét ra nhiều khối, bạn có thể sử dụng RStudio tìm/thay thế công cụ với tùy chọn regex được chọn. Phải mất hai bước thay thế (nó có thể có thể được thực hiện trong một bước, nhưng tôi không chắc chắn làm thế nào để làm một regex để chụp trên nhiều dòng trong RStudio).

Bước 1: Thảo luận ra các dòng đầu tiên của một hoặc nhiều khối:

Find: (```{r.*)
Thay thế: <!--\1

Bước 2: Thảo luận ra các dòng cuối cùng của một hoặc nhiều chunks:

Tìm: (```)$
Thay thế: \1-->


1 Bạn phải bao gồm hàng trên đoạn trong sự nổi bật. Nếu không, RStudio sẽ đặt các thẻ nhận xét R (#) ở đầu mỗi hàng của đoạn và dòng nhận xét sẽ xuất hiện dưới dạng văn bản thuần trong tài liệu đầu ra.

+0

Tôi không nhận ra đây là khả năng của R Studio. Mỗi khi tôi đã cố gắng để bình luận ra một đoạn, tôi đã luôn luôn nhận được '#'. Nó có thể giúp nhấn mạnh trong câu trả lời của bạn rằng _only_ này hoạt động nếu bạn làm nổi bật ít nhất hàng phía trên đoạn văn. (Trong R Studio 1.0.143, làm nổi bật từ một ở trên đến cuối đoạn văn bản hoạt động, và làm nổi bật từ đầu đoạn văn đến một hàng bên dưới kết thúc cung cấp ký hiệu nhận xét '#'). – Benjamin

+0

Bạn đã làm. Tôi đoán là tôi đã nghĩ đến một phần của câu đó. – Benjamin

+0

Tôi thích nó. Cảm ơn. – Benjamin

Các vấn đề liên quan