“Không chạy” trong các trang trợ giúp R ​​có nghĩa là gì?


112

Đôi khi trên trang trợ giúp R ​​cụm từ "không chạy" xuất hiện trong các nhận xét. Kiểm tra điều này từ trang trợ giúp cho "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**)

"Không chạy" có nghĩa là gì trong mã ví dụ?


32
chỉ là một mẹo liên quan. Bạn có thể chạy mã ví dụ bằng cách phát hành "example (glm)".
Eduardo Leoni 21/09/09

4
Đó là một mẹo hay. Và tôi dám cá rằng đại đa số người dùng R không biết về nó.
Dan Goldstein 21/09/09

1
nhưng ví dụ lưu ý (fn) sẽ vẫn không mã ví dụ được bọc trongdontRun
tim

trừ khi bạn thiết lập các run.dontruntham số choTRUE
Moody_Mudskipper

Câu trả lời:


77

"not run" bao gồm mã không nên được thực thi trong examplehàm (ví dụ: các phần mã tốn thời gian, tương tác với người dùng, ...).

xem ví dụ ?example:

Như được trình bày chi tiết trong hướng dẫn Viết phần mở rộng R , tác giả của trang trợ giúp có thể đánh dấu các phần của ví dụ cho hai quy tắc ngoại lệ

  • 'dontrun' bao gồm mã không được chạy.

  • 'dontshow' bao gồm mã ẩn trên các trang trợ giúp, nhưng sẽ được chạy bởi cả công cụ kiểm tra gói và hàm 'example ()'. Điều này trước đây là 'testonly', và hình thức đó vẫn được chấp nhận.


3
... làm thế nào tôi không biết về chức năng này?
Matt Parker

5
Nó không chỉ là mã tốn thời gian mà thường được đặt bên trong một \ dontrun {}. Mã đòi hỏi nhu cầu người dùng nhập vào được bên trong được dontrun cũng hoặc nếu không nó sẽ không vượt quaR CMD check
Dason

2
Hoặc: mã phụ thuộc vào gói có thể không được cài đặt trên máy của người dùng. Có rất nhiều và rất nhiều và rất nhiều lý do để sử dụng \ dontrun {}
Jason

25

Trong sổ tay "Viết phần mở rộng R" , trong phần về \ ví dụ {...} có nói rằng

Bạn có thể sử dụng \ dontrun {} cho văn bản chỉ được hiển thị nhưng không được chạy và \ dontshow {} cho các lệnh bổ sung để kiểm tra không được hiển thị cho người dùng, nhưng sẽ được chạy bởi example ()

Khi bạn tạo một gói thì tất cả mã trong lệnh đóng \ dontrun {} sẽ hiển thị trong trợ giúp dưới dạng

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

chỉnh sửa: Câu trả lời này là trước đó.


15

Điều này bổ sung \donttest{}và được lấy (nguyên văn) từ Gói R của @ hadley .

Tuy nhiên với mục đích minh họa, việc bao gồm mã gây ra lỗi thường hữu ích. \dontrun{}cho phép bạn đưa mã vào ví dụ chưa bao giờ được sử dụng. Có hai lệnh đặc biệt khác. \dontshow{}được chạy, nhưng không được hiển thị trong trang trợ giúp: điều này có thể hữu ích cho các thử nghiệm không chính thức. \donttest{}được chạy trong các ví dụ, nhưng không chạy tự động trong kiểm tra R CMD. Điều này rất hữu ích nếu bạn có các ví dụ mất nhiều thời gian để chạy. Các tùy chọn được tóm tắt dưới đây.

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

2
Lưu ý rằng donttest hiện đang được thử nghiệm
Tyler Rinker

1
Đối với việc gửi gói, bạn có phải có bất kỳ nhận xét bổ sung nào trong .Rd biện minh cho việc bỏ qua khối mã không? Tôi đã có một lần kiểm tra gói không thành công vì ví dụ \ donttest {} và tôi đang tự hỏi liệu việc thay đổi nó thành \ dontrun {} có đơn giản hay không. Chức năng này dành để tải dữ liệu từ ftp và chú thích CRAN là: "Điều đó không được nhận xét trong các tệp .Rd. Lưu ý rằng example () sẽ chạy các phần này".
Jeffrey Evans

Vâng, nó phải đơn giản như vậy.
Tyler Rinker

@TylerRinker ý của bạn là hàm được xác minh là đang hoạt động hay mã trong @donttest {} hiện được CRAN chạy khi thực hiện kiểm tra?
tim

2
Vâng, rất hữu ích khi trích dẫn từ cuốn sách của Hadley: "Với mục đích minh họa, việc bao gồm mã gây ra lỗi thường hữu ích. \ Dontrun {} cho phép bạn đưa mã vào ví dụ không được chạy. (Bạn đã từng có thể sử dụng \ donttest {} cho một mục đích tương tự, nhưng nó không còn khuyến khích bởi vì nó thực sự được kiểm tra)".
Tyler Rinker

5

C & p từ Chương 5.4 (Tệp Tài liệu R) của cuốn PHẢI ĐỌC Tạo Gói R: Hướng dẫn của Friedrich Leisch:

Phần ví dụ phải chứa mã R có thể thực thi và tự động chạy mã là một phần của việc kiểm tra một gói. Có hai lệnh đánh dấu đặc biệt cho các ví dụ:

dontrun : Mọi thứ bên trong \ dontrun {} không được thực thi bởi các bài kiểm tra hoặc example (). Điều này rất hữu ích, ví dụ, cho các chức năng tương tác, các chức năng truy cập Internet, v.v. Đừng lạm dụng nó để giúp cuộc sống của bạn dễ dàng hơn bằng cách đưa ra các ví dụ không thể thực thi được.


3

Ví dụ chính tắc ở đây có thể có trong trang trợ giúp cho 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)

Nếu điều này chạy, tất nhiên nó sẽ có những tác động không mong muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.