Blue-in-blue
datapath = "F:/R/RData/r/" # determine file path
for (year in 2010:2010)
{
month_day = month_day1
if (year%%4==0) month_day = month_day2 # else month_day = month_day1
for (month in 1:12)
{
time = year*100+month;
out = rep(0,20594)
for (day in 1:month_day[month])
{
date = year*10000+month*100+day;
print(date)
for (hr in seq(0,21,by=3))
{
data = read.table(paste(datapath,date,"_",hr,"hr_r.dat",sep="")) # Concatenate vectors after converting to character,produce full path
data = data[index,]
out = out + data
}
}
write.table(out,file=paste("rain03/",time,".dat",sep=""),append=F,row.names=F,col.names=F)
}
}
我想请教一下这段循环语句是如何实现对间隔3小时的降水数据求和后得到日累积降雨值,同样是如何得到月累积降水值的,另外 for (day in 1:month_day[month]) 这里的[month]又有什么作用?
libingfei
这个逻辑
#循环年
#循环月
#循环天(注意每个月时间长度不同所以建了个month_day数组,数组里12个值,分别存各月的天数当month=1时,month_day[month]等价于month_day[1],一月的天数)
#循环读3小时一个的文件
其实,做这个不用写这么复杂的循环循环,R里面有时间类型,巧用strptime这类函数,只需一次循环,写你这个程序不超过10行。