ID EN
I/O & Files

stopifnot

R Base 3.6.2 🇮🇩 Bahasa Indonesia

Jika salah satu ekspresi (dalam … atau exprs) tidak semuanya BENAR, stop akan dipanggil, menghasilkan pesan kesalahan yang menunjukkan ekspresi pertama yang tidak (semuanya) benar.

Syntax

R
stopifnot(…, exprs, local = TRUE)

Arguments

Parameter Deskripsi
…, exprs any number of (typically but not necessarily logical) R expressions, which should each evaluate to (a logical vector of all) TRUE. Use either … or exprs, the latter typically an unevaluated expression of the form{ expr1 expr2 .... }
local (only when exprs is used:) indicates the environment in which the expressions should be evaluated; by default the one where stopifnot() has been called from.

Return Value

(NULL jika semua pernyataan di … BENAR.)

Details

Fungsi ini dimaksudkan untuk digunakan dalam pengujian regresi atau juga pemeriksaan argumen suatu fungsi, khususnya agar lebih mudah dibaca. stopifnot(A, B) atau yang setara stopifnot(exprs= {A ; B}) secara konseptual setara dengan { if(any(is.na(A)) || !all(A)) stop(...); if(any(is.na(B)) || !all(B)) stop(...) }Sejak R versi 3.6.0, stopifnot() tidak lagi menangani potensi kesalahan atau peringatan (oleh tryCatch() dll) untuk setiap ekspresi dan dapat menggunakan sys.call(<n>) untuk mendapatkan pesan kesalahan yang bermakna dan singkat jika ekspresi tidak bernilai BENAR semua. Hal ini memberikan overhead yang jauh lebih sedikit. Sejak R versi 3.5.0, ekspresi dievaluasi secara berurutan, dan karenanya evaluasi berhenti segera setelah ada “tidak BENAR”, seperti yang ditunjukkan oleh pernyataan kesetaraan konseptual di atas. Selanjutnya, ketika s

Contoh

Example
R
# NOT RUN {
stopifnot(1 == 1, all.equal(pi, 3.14159265), 1 < 2) # all TRUE

m <- matrix(c(1,3,3,1), 2, 2)
stopifnot(m == t(m), diag(m) == rep(1, 2)) # all(.) |=>  TRUE

op <- options(error = expression(NULL))
# "disabling stop(.)"  << Use with CARE! >>

stopifnot(all.equal(pi, 3.141593),  2 < 2, all(1:10 < 12), "a" < "b")
## More convenient for interactive "line by line" evaluation:
stopifnot(exprs = {
  all.equal(pi, 3.1415927)
  2 < 2
  all(1:10 < 12)
  "a" < "b"
})

# long all.equal() error messages are abbreviated:
stopifnot(all.equal(rep(list(pi),4), list(3.1, 3.14, 3.141, 3.1415)))

options(op)  # revert to previous error handler
# }

See Also

stop warning; assertCondition in package tools complements stopifnot() for testing warnings and errors.