Почему пустая dataframe завершила проверку is.null()?

Пожалуйста, извините меня, если мой вопрос довольно прост.  Я создал пустой фрейм данных df <- data.frame(), и, очевидно, кадр данных NULL (пустой). когда я пытаюсь проверить, пустой ли кадр данных на is.null(df), результат будет FALSE. Есть ли разница между NULL и empty в R. В этом случае, если кадр данных не NULL, то что находится в пустом фрейме данных и когда оно будет NULL. Благодаря

Ответы

Ответ 1

df не является NULL, потому что это кадр данных и, следовательно, имеет некоторые определенные свойства. Например, у него есть класс. И вы можете получить количество строк в кадре данных с помощью nrow(df), даже если результат должен быть равен нулю. Поэтому также четко определено количество строк.

Как я знаю, в базе R. нет команды is.empty. Что вы можете сделать, например, следующее

is.data.frame(df) && nrow(df)==0

Это даст TRUE для пустого фрейма данных (то есть одного без строк) и false в противном случае.

Причина проверки is.data.frame заключается в том, что nrow может вызвать ошибку, если она применяется ко всему, кроме кадра данных. Благодаря &&, nrow(df) будет оцениваться только в том случае, если df - это кадр данных.

Ответ 2

data.frame() создает объект, который имеет класс фрейма данных. Поскольку объект существует, is.null вернет FALSE. A NULL переменная не имеет класса и не содержит содержимого.

Ответ 3

Выше правильные ответы, is.na и is.null не смогли обнаружить пустое значение в R. Это то, что я сделал бы, чтобы вычислить, сколько пустых значений у вас в вашем фрейме данных df в этом случае.

is.na(df [df == '']) < - TRUE # это просто заменит NA на пустое значение в df.

sum (is.na(df)) # даст вам представление о том, сколько пустых значений у вас есть в вашем "df".

Надеюсь, это полезно.