有个R程序,处理的数据也不算大360*180*1070的样子,但是由于观念以及经验不够,导致运行时间及其的长
请各位懂行的教一下应该怎样优化啊
<br />
stdata=read.csv("new_soildata.csv",header=TRUE) ##读入index数据,是一个1070*6的一个数组,<br />
##有文件头 ztype,cont, depth, sand, silt , clay <br />
attach(stdata)<br />
contdata=read.table("contdata.txt",header=FALSE) ##读入360*180格点数据,其中有一些0值和 cont值,cont值的范围在stdata->cont里<br />
typedata=read.table("zoblerdata.txt",header=FALSE) ##读入 360*180的ztype数据,ztype值也在 stdata->ztpye里<br />
<br />
soilsand=matrix(0,nrow=180,ncol=360) ##以下三个矩阵是要求的数据。 具体方法如下:<br />
soilsilt=matrix(0,nrow=180,ncol=360) ##如果 contdata[j,i] ==cont[k],并且 typedata[j,i] == ztype[k]<br />
soilclay=matrix(0,nrow=180,ncol=360) ##则 soilsand[j,i]=sand[k] ,soilsilt[j,i]=silt[k]等<br />
for (jy in c(1:180 )){<br />
for (ix in c(1:360 )){<br />
for (kz in c(1:length(ztype))){<br />
if (ztype[kz]==typedata[jy,ix] && cont[kz]==contdata[jy,ix])<br />
{ <br />
soilsand[jy,ix]=sand[kz]<br />
soilsilt[jy,ix]=silt[kz]<br />
soilclay[jy,ix]=clay[kz]<br />
}<br />
}<br />
}<br />
}<br />
summary(soilsand)<br />
效率太低,运行实在太慢,请大家帮忙看看怎么优化一下,谢谢!