shiny
paket değişkenleri mevcut ve geçerli hem olduklarını kontrol etmek için kullanışlı işlevler validate()
ve need()
sağlar. need()
bir ifadeyi değerlendirir. İfade geçerli değilse, bir hata mesajı verilir. İfade geçerliyse, NULL
döndürülür. Bir değişken geçerli olup olmadığını kontrol etmek için bunu kullanabilir. Daha fazla bilgi için bkz. ?need
.
böyle bir işlevi tanımlayan öneriyorum:
is.valid <- function(x) {
require(shiny)
is.null(need(x, message = FALSE))
}
x
FALSE
olup FALSE
eğer is.valid()
dönecektir Bu fonksiyon, NULL
, NA
, NaN
, boş bir dize ""
, boş bir atom vektör, sadece içeren bir vektör eksik değerler, yalnızca FALSE
içeren bir mantıksal vektör veya try-error
sınıfının bir nesnesi. Diğer tüm durumlarda, TRUE
döndürür. Bu, need()
(ve is.valid()
) 'un çok geniş bir aralıkta arıza durumlarını kapsadığı anlamına gelir.Bunun yerine yazma:
if (!is.null(x) && !is.na(x) && !is.nan(x)) {
...
}
biri basitçe yazabilirsiniz: (https://csgillespie.github.io/efficientR/programming.html#communicating-with-the-user bakınız): sınıfa try-error
için çek ile
if (is.valid(x)) {
...
}
, hatta sessizce hataları yakalamak için bir
try()
blokta ile birlikte kullanılabilir
bad = try(1 + "1", silent = TRUE)
if (is.valid(bad)) {
...
}
aVariable nereden gelir? Bir vektörde bir element, bir fonksiyona karşı global veya vektörel olmayan bir argüman mıdır? Daha fazla öneri alabilirim. –
belki 'var', aradığınız şeye yakındır –
Harlan'ın yorumunu 'var' ile ilgili olarak aşağıya bakın ... –