【发布时间】:2014-05-02 10:28:13
【问题描述】:
我的原始数据集“d”包括 13 年 26 个站点的月度 ndvi 和降水数据:
head(d)
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
3 2055 3 A 2000 mar 0.4393 Mixed forest 2143 25.5
4 2341 4 A 2000 apr 0.6029 Mixed forest 2143 72.6
5 2627 5 A 2000 may 0.4756 Mixed forest 2143 241.7
6 2913 6 A 2000 jun 0.4969 Mixed forest 2143 505.9
下面的代码生成 6 个图表,显示 jan-jun precip 与 august ndvi 的相关性。 现在,我想将 r 平方值添加到每个图,但是按照我在代码中所做的方式似乎不起作用,并且导致每个图的 r2=NA。我试图以与 p 值相同的方式获得 r2,但这也导致了 NA。
我为一个站点做了同样的事情,而 r2 工作。有没有人知道为什么它不适用于下面的代码?
d <- read.csv("a.csv", header = TRUE, sep = ",")
d <- na.omit(d)
for(m in c("jan","feb","mar","apr","may","jun")) {
ndvi<-d$ndvi[d$month=="aug"]
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))
abline(lm(ndvi~precip))
}
我得到的错误是:
Error in cor(ndvi, precip) : incompatible dimensions
感谢您的帮助!
【问题讨论】:
-
如果你的数据中有
NAs,你的第二行必须是d <- na.omit(d)。如果这不能解决问题,您需要向我们提供您的数据示例,或者使用dput(d),或者如果真实数据太大/机密无法共享,则以与您的数据类似的格式模拟 som . -
@Miff 感谢您的回复!我刚刚添加了 head(d),这样你就可以看到我的数据是什么样子了。另外,我按照您的建议更改了第二行,但现在我收到了我编辑的问题中提到的错误。
-
正如 Miff 所说,你能把
dput(d)的输出复制到这里吗,这里的问题并不明显,因为八月份的数据丢失了,还请查看minimum working example
标签: r loops correlation