使用来自ff包R的ffwhich函数编写循环

时间:2014-06-03 16:04:53

标签: r ff ffbase

我有一个非常大的ffdf名为' Scenarios'我想对其中一个名为' Eventfreq'的列进行排序。基于两个变量进入bin,然后取每个BIN中的值之和。

下面的函数基本上对一组变量执行此操作:

Disag <- function(M,R1,R2){
  x<-sum.ff(Scenarios[ffwhich(Scenarios,Magnitude==M & Rjb>R1 & Rjb<R2),]$Eventfreq)
  return(x)
}  

现在我只想应用上面的函数但改变3个输入变量(M,R1,R2),我尝试了一个循环如下:

M<-seq(4.55, 6.45, by=0.1) #First BIN Variable
R1<-seq(2, 16, by=1)  #Second BIN Variable lower limit 
BINS<-expand.grid(R1,M)   #Create all the different BINS
colnames(BINS)<-c("R1", "Mag")
BINS$R2<-with(BINS,R1+0.1)   #Second BIN Variable upper limit 

Z = (rep(NA,nrow(BINS)))
for(i in 1:nrow(BINS)){
  Z[i]=Disag(BINS$Mag[i],BINS$R1[i], BINS$R2[i])
}

但后来我收到如下错误信息:

Error in UseMethod("as.hi") : 
  no applicable method for 'as.hi' applied to an object of class "NULL" 

当我手动输入变量M,R1,R2时,该功能正常工作,因此问题必须与循环的运行方式有关,任何建议都会受到赞赏。感谢

0 个答案:

没有答案