检查数据框是否存在

时间:2013-12-13 18:06:35

标签: r dataframe

如果您将数据框名称作为字符串,那么检查数据框是否存在的首选方法是什么?我能想到:

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

3 个答案:

答案 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。