我想创建一个可以处理可能已创建或尚未创建的对象的函数。
在这个函数的开头,我想有一个快速的“if”语句,声明是否已经创建了某个变量。在这种情况下,时间戳。
TS<-date()
fun<-function(){
if(TS=="")
{print("No Time Stamp Info")}
else
{print("Time Stamp created at"); TS}
}
或者
TS<-date()
fun<-function(){
if(is.character(TS))
{print("Time Stamp created at"); TS}
else
{print("No Time Stamp Info")}
}
但是当然如果我们删除时间戳并且只是在没有首先为TS分配任何值的情况下进行以下操作:
#TS<-date()
fun<-function(){
if(TS=="")
{print("No Time Stamp Info")}
else
{print("Time Stamp created at"); TS}
}
因为TS不存在而导致错误。我想找到一种方法,这样如果R工作区中没有变量“TS”,我会得到“No Time Stamp Info”,而不是错误
无论如何都要正确设置可以执行此操作的功能吗?
答案 0 :(得分:4)
怎么样:
if (exists("TS")) ...
如果TRUE
存在,将返回TS
。
答案 1 :(得分:0)
也许包括
if("TS" %in% ls())
查看是否先定义TS
。
如果只在TS
中定义.GlobalEnv
,那么您需要包含
if("TS" %in% ls(envir = .GlobalEnv))
相反,可能会根据可能创建“TS”的环境更改envir
参数。