首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sapply带来的麻烦

sapply带来的麻烦
EN

Stack Overflow用户
提问于 2013-03-15 02:23:31
回答 1查看 144关注 0票数 0

下面是可重现的例子(至少在我的电脑上)

代码语言:javascript
复制
a <- as.Date(as.Date("2012-10-01"):as.Date("2013-03-25"))
myFun <- function (x) {
    return(sqrt(abs(as.numeric(x-as.Date("2013-01-01")))))
}

for (i in 1:length(a)) { print(myFun(a[i])) }工作正常,但是

sapply(a,myFun)失败并显示错误消息

代码语言:javascript
复制
"Error in `-.Date`(x, as.Date("2013-01-01")) : 
Can only subtract from Date objects"

欢迎所有的想法!

干杯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-15 02:36:05

直到我加载了zoo包,它才对我起作用。在此之前,这是因为日期和数字之间的强制问题,并且没有提供origin。如果您尝试detach(package:zoo)并运行:

代码语言:javascript
复制
 a <- as.Date("2012-10-01"):as.Date("2013-10-01")

myFun <- function (x) {
    return(sqrt(abs( x - as.numeric( as.Date( "2013-01-01" ) ) ) ) )
}
sapply(a,myFun)

我得到的结果与加载zoo包时所做的相同。原因是(在我的R会话上)在没有运行zoo的情况下,第一个命令会导致:

代码语言:javascript
复制
 as.Date(as.Date("2012-10-01"):as.Date("2013-03-25"))

结果如下:

代码语言:javascript
复制
Error in as.Date.numeric(as.Date("2012-10-01"):as.Date("2013-03-25")) : 
  'origin' must be supplied
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15417256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档