我有一个非常大的名为“Scenarios”的 ffdf,我想根据两个变量将名为“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 时,该函数工作正常,所以问题一定出在循环的运行方式上,任何建议都将不胜感激。谢谢