Почему пустая 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".
Надеюсь, это полезно.