2013-07-15 3 views
7

В сценарии я пытаюсь запустить, иногда переменные заполняются '' (что означает: полностью пуст), например.Проверьте, имеет ли переменная значение ''

variable <- '' 

Кто-нибудь знает о методе проверки, имеет ли переменная значение ''?

is.null(variable), похоже, не работает. '' - это не то же самое, что и NULL.

ответ

18

'' является пустым персонажем. Это не означает «полностью пустой» - это действительно NULL.

Чтобы проверить это, просто проверить равенство:

if (variable == '') … 

Если вы хотите проверить существует ли переменная, вам нужно использовать ... exists:

if (exists('variable')) … 

Но на самом деле существует очень мало случаев использования для exists в нормальном коде, поскольку, как автор кода, вы должны знать, какие существуют переменные, а какие нет. Скорее, это в первую очередь полезно в библиотечных функциях.

Однако ошибка, вы получаете,

пропущенное значение где TRUE/FALSE требуется

делает не означает, что переменная не существует. Скорее, if не может справиться с отсутствующими значениями - т. Е. NA. NA происходит в результате многих вычислений, которые сами содержат значение NA. Например, сравнивая NA любое значение (NA даже сама) снова дает NA:

variable = NA 
variable == NA 
# [1] NA 

С if ожидает TRUE или FALSE, он не может иметь дело с NA. Если есть шанс, что ваши ценности могут быть NA, вы должны проверить это явно:

if (is.na(variable) || variable == '') … 

Однако, это, как правило, лучше исключить NA значения из данных с самого начала идти, так что они не должен не распространяются на ситуацию, подобную приведенной выше.

+0

Спасибо! возможно, я задал неправильный вопрос. это ошибка, которую я получаю: «Ошибка в if (variable ==" ») {: отсутствует значение, где требуется TRUE/FALSE". Переменная не кажется вообще (должна быть ошибка в моем скрипте).Есть ли способ проверить, существует ли переменная? – rdatasculptor

+0

@ user1983395 Действительно, это совершенно другой вопрос. Позвольте мне исправить свой ответ. –

+0

большое спасибо! Вы мне очень помогли. – rdatasculptor

Смежные вопросы