找回密码
 立即注册
查看: 2992|回复: 0

显式循环转换成apply的问题

[复制链接]
发表于 2014-8-27 14:21:12 | 显示全部楼层 |阅读模式
新人学习R的过程中遇到一个问题,特来求教:

以下函数,如果我想把其中的显式循环改成apply函数的形式,要怎么改呢?

DBO <- function(x, n, ceiling, floor, multi){
     #处理异常数据:参数值超范围、数据有无效值
    x <- try.xts(x, error = as.matrix)
     if (n < 1 || n > NROW(x))
         stop("Invalid 'n'")
     if (any(nNonNA <- n > colSums(!is.na(x))))
         stop("n > number of non-NA values in column(s) ", paste(which(nNonNA), collapse = ", "))   
     
     #动态参数值的计算
    currentV  <-  runSD(x, 30, sample=T)
     deltaV  <-  Delt(currentV)
     deltav[is.na(deltav)] = 0
     
     lookback <- deltaV
     for( i in n:NROW(x)){
         if( i == n){
             lookback[i]  <-  20*(1+deltaV[i])
         }
         else{
             lookback[i]  <-  lookback[i-1]*(1+deltaV[i])
         }
         
         lookBack  <-  min(lookBack,ceiling)
         lookBack  <-  max(lookBack,floor)     
     }
     return(lookback)
}

谢谢~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 13:38 , Processed in 0.025658 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表