web-dev-qa-db-fra.com

Vérifier si le cadre de données existe

Quel est le moyen préféré de vérifier l'existence d'un cadre de données, étant donné que vous avez le nom du cadre de données sous forme de chaîne? Je peux penser à:

df_name <- 'iris'

# Option 1
tryCatch(is.data.frame(get(df_name)), error=function(cond) FALSE)

# Option 2
if (exists(df_name)) is.data.frame(get(df_name)) else FALSE
17
Tomas Greif

La deuxième option peut être réduite à

exists(df_name) && is.data.frame(get(df_name))

L’opérateur && permet une évaluation lazy, c’est-à-dire que la deuxième instruction n’est évaluée que si la première renvoie TRUE.

25
Sven Hohenstein

existe ("nom_fichier") donnerait TRUE (si le cadre de données existe) et FALSE (si ce n'est pas le cas). Alors pourquoi s'embêter? L'instruction trycatch dans la première réponse n'a pas fonctionné. Sa sortie était FALSE tout le temps.

0
user2653586

Un autre 

ifelse(any(ls() %in% "a"), is.data.frame(get("a")),FALSE)
0
Wilmer E. Henao