2015-08-20 3 views
0

У меня есть ситуация, когда мне нужно проверить, является ли переменная factor(0), но любой логический тест (в том числе по сравнению с NULL), который я пытаюсь присвоить ему, дает logical(0). Как проверить, является ли что-то пустым фактором?Тест, если переменная пуста в R

изменить: позвольте мне уточнить.

У меня есть функция, и она смотрит на атрибут вектора, который он принимает, но не каждый вектор имеет этот атрибут, поэтому для векторов, у которых нет атрибута, когда я запрашиваю атрибут attr(vector,"attribute") мой возврат является фактором (0), но когда я сравниваю это с 0, я получаю logical(0), и сравнение его с null или NA также не будет работать. Есть идеи?

+4

'factor (0)' не является пустым фактором. Вы создали «фактор» нулевого нуля с одним уровнем ... Что вы пытаетесь сделать? – A5C1D2H2I1M1N2O1R2T1

+0

'same (x, factor (0))' для проверки, является ли объект «фактором» с номером 0. Не уверен, что это то, что вы действительно ищете, хотя – Whitebeard

+0

Я отредактировал вопрос, надеюсь, что теперь я понятнее – Carl

ответ

1

Я смог использовать длину == 0 спасибо за помощь

+0

Обратите внимание, что 'as.logical (3)' такое же, как 'as.logical (1)' такое же, как 'TRUE', поэтому вам не нужно принудительно вводить логическое значение с' == 0' или '= = f'. если ваш оператор 'if' просто' if (length (x)) 'он все равно будет работать. – MichaelChirico