r语言 - 错误消息指出"错误:找不到对象'date_Object'



我是一个编程新手,我已经被难住了。我正在使用其他人编写的代码,我需要保持功能相同。这是我不断得到的错误信息:"错误:对象'date_Object' not found">

这是我试图运行的代码块,它一直给我这个错误信息:

sightdate_to_Date <- function(sightdate)  
date_Object <- mdy(sightdate)
is_wrong <- date_Object > Sys.Date()
date_Object[is_wrong] <- date_Object[is_wrong] - years(100)
date_Object

请帮忙!我不知道为什么它不工作,因为我试图格式化,而不是实际改变任何数据。

需要在函数声明周围使用大括号。如果没有它们,这就是R所看到的:

sightdate_to_Date <- function(sightdate) {
date_Object <- mdy(sightdate)
} # function declaration/definition is complete
is_wrong <- date_Object > Sys.Date()
date_Object[is_wrong] <- date_Object[is_wrong] - years(100)
date_Object

在这种情况下,应该清楚为什么没有找到date_Object。如果不是……那么最好研究一下"范围"。的对象;经过一些研究,我发现https://bookdown.org/rdpeng/rprogdatascience/scoping-rules-of-r.html和https://www.geeksforgeeks.org/scope-of-variable-in-r/这两个似乎都很合理。底线是,在函数内部创建/使用的变量函数外部不可用;函数内部唯一可以在外部使用的东西是返回的对象,或者使用显式的return(.)函数(通常不需要),或者使用函数中计算的最后一个表达式。如果您查看调用sightdate_to_Date(..)的返回值,您会注意到它是唯一的表达式mdt(sightdate)的返回值,并且返回它是因为赋值操作符(<-=)都无形地返回赋值。

最终,您需要这样的内容:

sightdate_to_Date <- function(sightdate) {
date_Object <- lubridate::mdy(sightdate)
is_wrong <- date_Object > Sys.Date()
date_Object[is_wrong] <- date_Object[is_wrong] - years(100)
date_Object
}
sightdate_to_Date("2020-02-02") # or whatever object you have

相关内容

  • 没有找到相关文章

最新更新