0

我想创建一个可以处理可能尚未创建或尚未创建的对象的函数。

在这个函数的开头,我想要一个快速的“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”,而不是错误

反正有没有正确设置一个可以做到这一点的功能?

4

2 回答 2

4

关于什么:

if (exists("TS")) ...

TRUE如果TS存在,这将返回。

于 2012-06-29T08:43:36.000 回答
0

也许包括

if("TS" %in% ls())

看是否TS先定义。

如果TS只在 中定义.GlobalEnv,那么您需要包括

if("TS" %in% ls(envir = .GlobalEnv))

相反,可能会envir根据可能创建“TS”的环境更改参数。

于 2012-06-29T08:42:15.323 回答