我试图将某些月份(jul,aug,sept)的ndvi与前6个月的变异系数(cv)联系起来。
我的原始数据集“d”包括26个站点的13年的每月ndvi和降水数据:
row.names timestamp station year month ndvi landcover altitude precipitation
1 1 1 A 2000 jan 0.4138 Mixed forest 2143 16.0
2 1769 2 A 2000 feb 0.4396 Mixed forest 2143 4.0
到目前为止,我有以下脚本,允许我将jan-jun中的降水量与jul中的ndvi相关联并绘制出来。
for(m in c("jan","feb","mar","apr","may","jun")) {
ndvi<-d$ndvi[d$month=="jul"]
precip<-d$precipitation[d$month==m]
r2<-cor(ndvi,precip)^2
cat("month =",m,"P=",cor.test(ndvi,precip)$p.value,"\n")
plot(ndvi~precip,main=m, sub=sprintf("r2=%.2f",r2))
}
有没有人对如何将jan-jun的cv合并到for循环中有任何想法?
d$cv <- sd(d$precipitation, na.rm = TRUE)/mean(d$precipitation, na.rm = TRUE)
感谢您的帮助!
编辑:
@Osssan我试图像这样输入您的更改:
for(m in c("jan","feb","mar","apr","may","jun")) {
ndvi<-d$ndvi[d$month=="aug"]
precip_6m<-d$precipitation[d$month %in% c("jan","feb","mar","apr","may","jun")]
cv= sd(precip_6m, na.rm=TRUE)/mean(precip_6m,na.rm=TRUE)
r2<-cor(ndvi,cv, use="complete.obs")^2
cat("month =",m,"P=",cor.test(ndvi,cv, na.action=na.omit)$p.value,"\n")
plot(ndvi~cv,main=m,
sub=sprintf("r2=%.2f",r2))
}
不幸的是我收到以下错误:
Error in cor(ndvi, cv, use = "complete.obs") : incompatible dimensions
基本上每2000 - 2013年,我需要得到变异系数(jan-jun:ONE值)与NDVI(分别为jul / aug / sep)的R平方,图和p值。 / p>
由于