r - 如何从 R 中的两个栅格计算 r2?
问题描述
我有两个栅格,我希望看到两者之间的相关性,并获得 r2。
TOTAL2
class : RasterLayer
dimensions : 2803, 5303, 14864309 (nrow, ncol, ncell)
resolution : 0.008333333, 0.008333333 (x, y)
extent : 60.85, 105.0417, 15.95833, 39.31667 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
source : memory
names : layer
values : 0, 400 (min, max)
> lpjENLF$VegCX2X0.7
class : RasterLayer
dimensions : 2803, 5303, 14864309 (nrow, ncol, ncell)
resolution : 0.008333333, 0.008333333 (x, y)
extent : 60.85, 105.0417, 15.95833, 39.31667 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
source : memory
names : VegCX2X0.7
values : 1.874989e-05, 350 (min, max)
如何计算这两个栅格之间的 r2 值?我试图将两个栅格都转换为数据框,但两个数据框都返回为NA
. 然后我申请,na.rm=T
并尝试找到 r2 但两个栅格的数据帧的长度变得不同。我尝试的第二个解决方案是堆叠两个栅格并应用此代码:
layerStats(rasterstack,'pearson')
但是我得到:
$`pearson correlation coefficient`
VegCX2X0.7 layer
VegCX2X0.7 NA NA
layer NA NA
$mean
VegCX2X0.7 layer
NA NA
解决方案
选项 1:您可以na.rm
在layerStats
layerStats(rasterstack, 'pearson', na.rm=T)
选项 2:您可以首先从栅格对象中提取值并应用内置函数cor
。使用此函数,您应该添加参数use="complete.obs" to get it working with
NA` 值。
cor(values(TOTAL2), values(lpjENLF$VegCX2X0.7), use="complete.obs", method = 'pearson')
推荐阅读
- python - 在 linux 环境中使用子进程运行 shell 命令时在 python 2.7 中转义 hypen
- javascript - 为什么我不能遍历我的 Javascript 数组?
- java - 如何克服 415 不支持的媒体类型而不在 Rest Client 中提供内容类型
- apache-spark - Snowflake vs Spark - 操作模式的权限不足
- python - python的循环:如何循环列表以查找列表的哪些元素以开头
- amazon-web-services - OWASP ZAP - SSLHandshakeException:收到致命警报:handshake_failure
- php - Laravel 6.x - 无法在控制器方法中更新表单(嵌套子)
- javascript - 如果地图值等于特定文本,则有条件地呈现
- javascript - 将相同的值分配给两个不同的状态,但在更新它们时,它们应该被它们自己的值所影响
- database - 事实表中的度量/度量来自哪里?