如果您将数据框名称作为字符串,那么检查数据框是否存在的首选方法是什么?我能想到:
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
答案 0 :(得分:26)
第二个选项可以缩短为
exists(df_name) && is.data.frame(get(df_name))
运算符&&
允许延迟评估,即仅在第一个语句返回TRUE
时才评估第二个语句。
答案 1 :(得分:0)
另一个
ifelse(any(ls() %in% "a"), is.data.frame(get("a")),FALSE)
答案 2 :(得分:0)
存在(&#34; df_name&#34;)将给出一个TRUE(如果数据帧存在)和FALSE(如果它不存在)。那为什么要这么麻烦?第一个响应中的trycatch语句不起作用。它的输出始终为FALSE。