gpt4 book ai didi

r - 如何替换过渡层中的值? (距离)

转载 作者:行者123 更新时间:2023-12-04 03:12:08 28 4
gpt4 key购买 nike

我想知道是否有人可以帮助我替换过渡层中的值。

如果我尝试:

transitionlayer[transitionlayer >= 0.14] <- 1

我收到以下错误:

Error in hd >= 0.14 : 
comparison (5) is possible only for atomic and list types

我想做的是替换坡度过渡层中所有大于 0.14 的值。

我在 gdistance 小插图中找到了这些示例,但是它们使用了另一个过渡层,我不想这样做,因为我没有斜率超过 0.14 的单元格位置

  #Extracting and replacing
tr1[cbind(1:9,1:9)] <- tr2[cbind(1:9,1:9)]
tr1[1:9,1:9] <- tr2[1:9,1:9]
tr1[1:5,1:5]

有什么想法吗?

谢谢!

最佳答案

首先,为设置可重现的示例做一些准备工作。

#Create a new raster and set all its values to unity.
r <- raster(nrows=18, ncols=36)
r <- setValues(r, runif(ncell(r)))

#Create a Transition object from the raster
tr <- transition(r, transitionFunction=mean, directions=4)

现在,三个选项可以更改转换矩阵中的值。

选项 1 - 使用 S4 插槽

tr@transitionMatrix@x[tr@transitionMatrix@x > 0.5] <- 0.7

选项 2 - 取出稀疏矩阵并放回

trM <- transitionMatrix(tr)
trM[trM > 0.5] <- 1
transitionMatrix(tr) <- trM

选项 3 - 可能是最优雅的

transitionMatrix(tr)[transitionMatrix(tr) < .2] <- 1

关于r - 如何替换过渡层中的值? (距离),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44296141/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com