veuillez m'excuser si ma question est assez basique. J'ai créé un bloc de données vide par df <- data.frame()
et évidemment le bloc de données est NULL (vide). lorsque j'essaie de vérifier si la trame de données est vide par is.null(df)
, le résultat est FAUX. Y a-t-il une différence entre NULL
et empty
dans R. Dans ce cas, si le bloc de données n'est pas NULL
, alors ce qu'il y a dans le bloc de données vide et quand il le sera NULL
. Merci
df
n'est pas NULL car il s'agit d'un bloc de données et a donc des propriétés définies. Par exemple, il a une classe. Et vous pouvez obtenir le nombre de lignes dans le bloc de données en utilisant nrow(df)
, même si le résultat doit être nul. Par conséquent, le nombre de lignes est également bien défini.
Pour autant que je sache, il n'y a pas de commande is.empty
Dans la base R. Ce que vous pourriez faire, par exemple, est le suivant
is.data.frame(df) && nrow(df)==0
Cela donnera TRUE pour une trame de données vide (c'est-à-dire une sans ligne) et false sinon.
La raison de la vérification de is.data.frame
Est tout d'abord que nrow
peut provoquer une erreur, s'il est appliqué à autre chose qu'un bloc de données. Grâce à &&
, nrow(df)
ne sera évaluée que si df
est une trame de données.
data.frame()
crée un objet qui a une classe de trame de données . Parce que l'objet ( existe , is.null
renverra [~ # ~] false [~ # ~] . Une variable NULL
n'a pas de classe et pas de contenu.