提问人:Jean-Luc Dupouey 提问时间:11/5/2023 更新时间:11/5/2023 访问量:32
逻辑运算的结果 & 和 |terra 中的 NA 与 R-base 的不同意?
The results of the logical operations & and | with NA in terra do not agree with those of R-base?
问:
以下代码显示,它不会以与 does 相同的方式进行解释。在这两种情况下,结果都是 。使用 ,结果分别为 和 。我知道这两种选择对于编程语言来说都是可以接受的选择。但是,即使对于有经验的用户来说,当软件包的行为与 和 等低级操作的行为不同时,它也可能是一个真正的陷阱。我查看了文档,看看是否有任何地方提到过这一点,但我找不到它。如果确实如此,那么在某处指出这一点可能会有所帮助。但也许我错了。或者说,为栅格做出这种选择是有充分理由的?terra
NA | TRUE
NA & FALSE
R-base
terra
NA
R-base
TRUE
FALSE
R-base
&
|
terra
vals1 <- rep(c(NA,FALSE,TRUE),each=3)
vals2 <- rep(c(NA,FALSE,TRUE),3)
r1 <- rast(nrows=3, ncols=3, vals=vals1)
r2 <- rast(nrows=3, ncols=3, vals=vals2)
Or <- r1 | r2
And <- r1 & r2
data.frame(r1=values(r1,mat=FALSE),r2=values(r2,mat=FALSE),"r1 or r2 (terra)"=values(Or,mat=FALSE),"r1 or r2 (R)"=vals1|vals2)
# r1 r2 r1.or.r2..terra. r1.or.r2..R.
# 1 NA NA NA NA
# 2 NA FALSE NA NA
# 3 NA TRUE NA TRUE
# 4 FALSE NA NA NA
# 5 FALSE FALSE FALSE FALSE
# 6 FALSE TRUE TRUE TRUE
# 7 TRUE NA NA TRUE
# 8 TRUE FALSE TRUE TRUE
# 9 TRUE TRUE TRUE TRUE
data.frame(r1=values(r1,mat=FALSE),r2=values(r2,mat=FALSE),"r1 and r2 (terra)"=values(And,mat=FALSE),"r1 and r2 (R)"=vals1 & vals2)
# r1 r2 r1.and.r2..terra. r1.and.r2..R.
# 1 NA NA NA NA
# 2 NA FALSE NA FALSE
# 3 NA TRUE NA NA
# 4 FALSE NA NA FALSE
# 5 FALSE FALSE FALSE FALSE
# 6 FALSE TRUE FALSE FALSE
# 7 TRUE NA NA NA
# 8 TRUE FALSE FALSE FALSE
# 9 TRUE TRUE TRUE TRUE
答: 暂无答案
上一个:输出的方法和问题
评论