首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在尝试优化这段代码。速度问题

问正在尝试优化这段代码。速度问题
EN

Stack Overflow用户
提问于 2016-09-09 20:13:08
回答 1查看 52关注 0票数 0

这段代码给了我想要的东西,但是对于更大的数据集,它会变得非常慢。我会非常感谢一些关于我如何以更快的速度做同样的事情的见解。

代码语言:javascript
复制
df = data.frame(v1 = runif(1:15000), v2 = runif(1:15000))

rolling.monthlies = lapply(df, function(x){
  p = sapply(1:length(x), function(i){
    m = rev(x[1:i])
    m = m[seq(1,length(m),21)]
    m = rev(m)
  })
  return(p)
})
EN

回答 1

Stack Overflow用户

发布于 2016-09-09 22:17:26

我们可以像这样使用seq来消除两个rev调用。我们也可以使用lapply来代替sapply,因为在保存尝试时没有做任何简化:

代码语言:javascript
复制
set.seed(123) # for reproducibility
df = data.frame(v1 = runif(1:15000), v2 = runif(1:15000)) # input

rolling.monthlies2 = lapply(df, function(x)
  lapply( seq_along(x), function(i) x[seq(i %% 29, i, 29)] )
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39411340

复制
相关文章

相似问题

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