全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
7772 4
2015-05-07
创建了一个函数,但是刚跑一点点就出问题了。

grab_high<-function(x) {
  n<-length(x)
  date<-x[1]
  j<-list()
  k<-0
  m<-NULL
  for (i in 2:n) {
    me<-x[i]
    high<-which(x[[i]]>9.8)
    if (length(high)<6) next
    d<-diff(high)
    t<-which(sapply(1:(length(x) - 5), function(i) {
      all(d[i + (0:3)] == 1)
    }))
    continuous_high<-high(t)
    date_high<-matrix(n[[continuous_high]],x[i][[continuous_high]])
    n<-length(continuous_high)
    v<-NULL
    for ( i in 1:n) {
      ireturn<-me[[continuous_high[i]+1]]
      v<-c(v,ireturn)
      m<-c(m,ireturn)
    }
    k<-k+1
    j[k]<-v
    }
    return(mean(m))
  }
}


str(getout)
'data.frame':        265 obs. of  2674 variables:
$ X         : Factor w/ 265 levels "2014-03-21","2014-03-24",..: 1 2 3 4 5 6 7 8 9 10 ...
$ X000001.SH: num  2.7159 0.9113 0.0499 -0.1761 -0.8277 ...
$ X000001.SZ: num  6.832 0 -1.761 0.943 0.654 ...
$ X000002.SZ: num  6.658 0.624 -0.993 -1.629 1.656 ...
$ X000004.SZ: num  1.742 0.856 -0.309 0.774 2.458 ...
$ X000005.SZ: num  3.86 1.65 1.63 -2 2.45 ...
$ X000006.SZ: num  5.56 2.63 2.14 -1.88 10.02 ...

> grab_high(getout)
Error: could not find function "high"

high已经被定义成high<-which(x[[i]]>9.8),为什么还说找不到函数呢??

求教啊,谢谢。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-5-7 16:59:25
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-7 22:48:21
定义得加function
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-8 09:54:30
你这定义的不是function

high <- function(i) which()
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-12 15:52:53
katymeala 发表于 2015-5-7 22:48
定义得加function
那我high<-which(x[]>9.8)这样直接赋值是不行的么?其实本来就不想弄成function,只是想直接赋值的,为什么直接赋值不行呢?

谢谢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群