R使用引用和取消引用宏变量的最佳方法

时间:2018-08-09 20:19:37

标签: r macros double-quotes

我有以下代码来检查数据集是否存在以及数据集是否有数据,并且问题出在宏变量周围。

check_data_ready <- defmacro(tracking_sheet,table_df,table_name,
expr={if (exists(table_df) && is.data.frame(get(table_df)) && dim(table_df)==NULL) {`tracking_sheet$DataReady[tracking_sheet$Table==table_name]<-'Ready'
} else {tracking_sheet$DataReady[tracking_sheet$Table==table_name]<-'Check!'}
                           })

check_data_ready(tracking_sheet,"df","Table")

错误消息是

  

if(exists(“ df”)&& is.data.frame(get(“ df”))&& dim(“ df”)==

时出错

因此,显然dim(“ df”)无法正常工作,应该是dim(df)。我尝试将双引号从2减为3,但看起来它将d识别为1,将f识别为2,因此不计算双引号。我在这里迷路了,如何使代码像这样

if (exists("df") && is.data.frame(get("df")) && dim(df) == 

0 个答案:

没有答案