Eu tenho duas funções semelhantes às seguintes. O primeiro detecta se uma variável está em branco enquanto o segundo irá gerar algo que não é relevante para esta questão. Quero que a segunda função gere as seguintes mensagens de erro específicas nas condições estipuladas com o "if":
is.blank <- function(x) is.na(x) | x == ""
generate_something <- function(n, m, roll) {
if (is.blank(n)) {
stop("Missing number of blocks.")
}
if (is.blank(m)) {
stop("Missing M number.")
}
if (is.blank(roll) && m > 27) {
stop("Missing roll where relevant.")
}
}
No entanto, R não funciona bem com isso quando tento executar generate_something() sem nenhuma entrada. Em vez disso, ele me dará sua própria mensagem de erro:
Error in generate_something(m = 34, roll = 1) :
argument "n" is missing with no default
Porém, se eu definir a função com todas as entradas iguais a NULL, isso também não resolverá o problema. O que posso fazer para resolver esse problema?
Acho que para fazer isso funcionar, você teria que incluir
is.null(x)
,is.blank()
mas teria que avaliar isso primeiro e, se não forNULL
, avaliar as outras condições:Criado em 26/09/2023 com reprex v2.0.2
Acho que @MrFlick já respondeu sua pergunta. O que você está procurando é
missing
função e não em branco.