0

「Scenarios」という名前の非常に大きな ffdf があり、「Eventfreq」という名前の列の 1 つを 2 つの変数に基づいてビンに並べ替え、各 BIN 内の値の合計を取得したいと考えています。

以下の関数は、基本的に 1 つの変数セットに対してこれを行います。

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を手動で入力すると関数は正常に機能するため、問題はループの動作方法にあるはずです。提案をいただければ幸いです。ありがとう

4

0 に答える 0