我最近在运行如下所示的for循环时遇到错误消息:
错误:找不到对象“ Month1”
res_org<-read.csv("XXX", sep=",", header=TRUE)
dim(res_org)
exp<-res_org
head(res_org)
exp1<-res_org
dim(exp1)
n<-length(exp1$Longitude)
i=1
for (i in 1:n){
exp$Month1<-c()
exp$Year1<-c()
Month1[i]<-exp$Month[i] - 1
if(Month1[i]<=0){
(exp1[i, 'Year1'] =(exp1$Year[i]-1))&
(exp1[i, 'Month1']=(exp1$Month[i]-1+12))
}
else{
(exp1[i, 'Year1'] = exp1$Year[i]) &
(exp1[i, 'Month1']= (exp1$Month[i] - 1))
}
}
head(exp1)
write.csv(exp1, file = "XXX")
对于我来说,R并没有根据我的规范Month1
创建另一个新的Month1[i]<-exp$Month[i] - 1
变量似乎很奇怪,即使我在导入的变量中有'Month'和'Year'的变量数据集。
上述for循环的目的:
目标是从每个月中减去一个间隔(i = 1、2、3,... 12),同时修改年份,以便通过随后的克里金插补有效地准备年度平均值计算。
例如,以一个间隔,12月(12)将转换为11月(11),2月(2)将转换为1月(1),1月(1)将转换为12月(12) , 等等。同样,以两个间隔,12月(12)将转换为10月(10),2月(2)将转换为12月(12),1月(1)将转换为11月(11),依此类推等等。
关于年份,所有年份应保持不变,除非将一年中的某些月份转换为过去一年中的前几个月(例如,如果1月(1)变为12月,则间隔为一年) 12),则年份将随后更改为上一年;如果间隔2月(2)变为12月(12)或1月(1)变为11月(11),则间隔将以两年为间隔,随后一年好吧
因此,如果有人可以为上述错误消息提供解决方案,或者甚至提供另一个for循环来实现我的目标,我将不胜感激。预先谢谢你!
最好
丽莎