请教有关模型拟合问题:
目的:从merge.data数据框中求当inter为某一值时,提取R和M两列数据,进行一元二项次拟合,求y为最小值时的x值,并且删除rsq小于某值的数据。
问题:由于原数据量大,需要大约10~15分钟的时间才能算完,请教是否有更加合理的拟合运算?
<br />
j<-1<br />
for(i in unique(merge.data$inter)) <br />
{ <br />
temp<-merge.data[merge.data$inter==i,c("R","M")] <br />
x<-temp$M<br />
y<-temp$R<br />
<br />
temp.lm<-lm(y~x+I(x^2)) #quadratic fit model<br />
<br />
a<-coef(temp.lm)[[3]]# Quadratic coefficients<br />
b<-coef(temp.lm)[[2]]<br />
c<-coef(temp.lm)[[1]]<br />
rsq<-summary(temp.lm)$r.squared <br />
ma<--b/(2*a)<br />
<br />
inter<-strsplit(i,"#")[[1]]<br />
names(inter)<-c("lot_id","wafer_id","diex","diey","prmod","cellOrientation","implantType","misalignLayer")<br />
inter<-t(data.frame(inter))<br />
temp.MA<-data.frame(A=a,B=b,C=c,RSQ=rsq,MA=ma,inter)<br />
<br />
for ( k in (1:length(temp$R)))<br />
{<br />
temp.mis<-data.frame(temp[k,1])<br />
names(temp.mis)<-temp[k,2]<br />
if (k==1) {mis<-temp.mis} else {mis<-cbind(mis,temp.mis)}<br />
}<br />
temp.MA<-cbind(mis,temp.MA) <br />
<br />
if (j==1){MA.RAW<-temp.MA} else {MA.RAW<-rbind(MA.RAW,temp.MA)} <br />
j<-j+1 <br />
}<br />
<br />
目的:从merge.data数据框中求当inter为某一值时,提取R和M两列数据,进行一元二项次拟合,求y为最小值时的x值,并且删除rsq小于某值的数据。
问题:由于原数据量大,需要大约10~15分钟的时间才能算完,请教是否有更加合理的拟合运算?