Я пишу функцию, есть одна часть функции, которая может принимать одно значение или вектор или сохранять значение по умолчанию, если в вызове функции ничего не указано.
В приведенном ниже коде «a» задается по умолчанию 0, а затем в функции есть оператор if, чтобы увидеть, равно ли «a» 0 или присвоено ли ему значение.
Если я вызываю функцию, используя одно значение, вектор, или оставляю это поле пустым, выводится ожидаемый результат. Если заданный ему вектор имеет длину более 1, я получаю ожидаемое предупреждающее сообщение (несмотря на то, что функция все еще работает):
«условие имеет длину> 1, и будет использоваться только первый элемент»
Поэтому мой запрос - это лучший способ проверить, было ли "a" оставлено пустым и оставлено ли оно пустым для запуска фрагмента кода (в данном случае для вывода "default") или if " «было дано значение, чтобы затем выполнить какой-то другой код (в данном случае, чтобы напечатать« данное значение ») без предупреждения, если вектор назначен« а », когда я вызываю функцию.
Пример кода следующий:
#Function
ExampleFunction<-function(a=0)
{
if (a==0)
print ("default")
else{print("value given")}
}
#Run function using a vector which gives the warning message
abc<-c(1,2,3)
ExampleFunction(abc)