首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xts中的rollapply内存不足R

xts中的rollapply内存不足R
EN

Stack Overflow用户
提问于 2012-08-12 08:31:57
回答 1查看 294关注 0票数 2

我有一个大约2mil行的xts对象。我正在尝试在width=10000中使用rollapply。rollapply似乎耗尽了内存,我在找出原因时遇到了麻烦?(我试图通过键入> rollapply查看源代码,但只显示了以下内容:

代码语言:javascript
复制
function (data, ...) 
 UseMethod("rollapply")
 <environment: namespace:zoo>

rollapply是否会为每个区块创建200- 10,000个副本,然后逐个传递它们?这肯定会导致内存耗尽,但我不认为zoo的创建者会这样做?如果是这样,那么有没有人知道更聪明的方法来做我的滚动应用。我现在的计划就是这么做:

代码语言:javascript
复制
m <- vector()
for (i in 10001:nrow(my_xts)) {
   m <- c(m, my_fun(my_xts[i-10000:i]))

}

你确定还有更好的办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-12 09:10:18

看起来内存消耗是在zoo:::rollapply.zoo中的mapply调用期间发生的。有一个xts rollapply方法,但它没有被导出,所以不会通过方法调度来调用它。也就是说,您可以显式调用它:

代码语言:javascript
复制
my_xts <- .xts(1:1e5*1,1:1e5)
m <- xts:::rollapply.xts(my_xts, width=10000, FUN=sum)

当您遇到以下情况时,使用methods(foo)查看可用的方法:

代码语言:javascript
复制
function(...)
  UseMethod("foo")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11918819

复制
相关文章

相似问题

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