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

ldply函数求助

[复制链接]
发表于 2016-12-1 18:50:45 | 显示全部楼层 |阅读模式
data.zhangting是一个有70个组件的列表,每个组件是如下的一个矩阵
head(data.zhangting[[1]])
    DATETIME     OPEN     HIGH      LOW    CLOSE     TURN MAXUPORDOWN   ipo_date       sec
1 2016-02-05 19.50655 23.41182 19.50655 23.41182 0.263476           0 2016-02-05 603377.SH
2 2016-02-15 25.75102 25.75102 25.75102 25.75102 0.169274           1 2016-02-05 603377.SH
3 2016-02-16 28.32811 28.32811 28.32811 28.32811 0.056634           1 2016-02-05 603377.SH
4 2016-02-17 31.16290 31.16290 31.16290 31.16290 0.121276           1 2016-02-05 603377.SH
5 2016-02-18 34.27522 34.27522 34.27522 34.27522 0.475810           1 2016-02-05 603377.SH
6 2016-02-19 37.70473 37.70473 37.70473 37.70473 1.366660           1 2016-02-05 603377.SH


函数countzt是一个作用在矩阵上的函数
#计算连续涨停个数的函数
countzt<-function(x){
     l<-1
     s<-which(x$DATETIME==x$ipo_date[1]) #ipo日所在的行的位置
     x$MAXUPORDOWN<-1
     s<-s+1
     while(x$MAXUPORDOWN==1 && x$MAXUPORDOWN[s-1]==1 && x$LOW==x$HIGH){
      l<-l+1
      s<-s+1
     }
     return(l)
}

如下语句
ldply(data.zhangting,countzt)
报错 Error in while (x$MAXUPORDOWN == 1 && x$MAXUPORDOWN[s - 1] == 1 &&  :
  missing value where TRUE/FALSE needed
但是语句countzt(data.zhangting[[1]]) 有计算结果

对plyr不太熟,希望大家多多指教

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 02:14 , Processed in 0.020230 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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