循环中响应(NDVI)和解释(某些降水月份)变量之间的相关性

时间:2014-05-09 18:47:22

标签: r for-loop correlation

我试图将某些月份(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>

由于

0 个答案:

没有答案