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
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
.
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.
Un autre
ifelse(any(ls() %in% "a"), is.data.frame(get("a")),FALSE)