R 在ifelse()语句内部和外部运行行时的不同输出
我试图运行一个简单的命令,但不知道为什么在R 在ifelse()语句内部和外部运行行时的不同输出,r,if-statement,zoo,R,If Statement,Zoo,我试图运行一个简单的命令,但不知道为什么在ifelse()函数内部和外部运行时,输出会有所不同。函数条件的计算结果为FALSE,因此输出应完全相同 但是,单独运行时,输出为01 01 01 NA(根据需要),但通过ifelse()函数,输出为0(不需要) 库(dplyr) 图书馆(动物园) x代码应该使用if,而不是ifelse。在?ifelse中,它表示以下内容,test是ifelse的第一个参数 “ifelse”返回与“test”形状相同的值 在问题test中,del==1是一个逻辑标量,因
ifelse()
函数内部和外部运行时,输出会有所不同。函数条件的计算结果为FALSE
,因此输出应完全相同
但是,单独运行时,输出为01 01 01 NA
(根据需要),但通过ifelse()
函数,输出为0
(不需要)
库(dplyr)
图书馆(动物园)
x代码应该使用if
,而不是ifelse
。在?ifelse
中,它表示以下内容,test
是ifelse
的第一个参数
“ifelse”返回与“test”形状相同的值
在问题test
中,del==1
是一个逻辑标量,因此结果也是一个
另外,rollappy
可以使用list(1:(del-1))
引用前面有正偏移的偏移量1、2、…、del-1。这看起来更干净,因为它直接实现了需要的东西,而不是以后再修复,而且使用的包也更少
library(zoo)
del <- 2
if (del == 1) -1 else rollapply(x == 0, list(1:(del-1)), all, fill = NA)
## [1] FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE NA
图书馆(动物园)
德尔
library(zoo)
del <- 2
if (del == 1) -1 else rollapply(x == 0, list(1:(del-1)), all, fill = NA)
## [1] FALSE FALSE TRUE TRUE FALSE TRUE FALSE TRUE NA