http://www.biomedcentral.com/con ... /1471-2288-9-7-S3.r 文献上给了一个求归因分值的程序 运行后出现错误 Error in object[] : object of type 'closure' is not subsettable,请问该如何调整?
averageAF = function(formula=NULL,data=NULL){d=model.frame(formula,data)if(any(!(d==1|d==0))) stop("only dichotomized (0/1) variables allowed")vars=ncol(d)-1n=nrow(d)obs.cases=sum(d[,1])m=glm(formula,family=binomial,data=d)if(any(m$coef[-1]<0)) stop("at least one variable is not a risk factor")perm=function(from,to,vec){ if (to == 1) return(matrix(vec,from,1)) else if (from==1) matrix(vec,1,to) else{ X=NULL for (i in 1:from){X=rbind(X,cbind(vec,Recall(from-1,to-1,vec[-i])))} return(X) }}indices=perm(vars,vars,2:(vars+1))pred.cases.m=matrix(NA,nrow=nrow(indices),ncol=vars)prev.cases.m=matrix(NA,nrow=nrow(indices),ncol=vars)d1=dfor(i in 1:nrow(indices)){ for(k in 1:vars){ d[,indices[i,k]]=rep(0,n) pred.cases.m[i,k]=sum(predict.glm(m,d,"response")) } d=d1}pred.cases.m=cbind(rep(obs.cases,nrow(indices)),pred.cases.m)for(i in 1:nrow(indices)){ for(k in 1:vars){ prev.cases.m[i,indices[i,k]-1]=pred.cases.m[i,k]-pred.cases.m[i,k+1] }}prev.cases=apply(prev.cases.m,2,mean)PARF=prev.cases/obs.casesnames(PARF)=names(d)[-1]return(PARF)}summary(averageAF)


雷达卡



京公网安备 11010802022788号







