如何从另一个XTS创建虚拟变量的XTS?

问题描述 投票:1回答:1

假设我有以下xts ...

a <- c(1,-1,2,-2)
b <- c(-1,-2,3,4)
x <- xts(cbind(a,b),order.by = as.Date(c("2015-01-02","2015-01-05","2015-01-06","2015-01-07")))
x

这给你...

            a  b
2015-01-02  1 -1
2015-01-05 -1 -2
2015-01-06  2  3
2015-01-07 -2  4

我想创建一个xts的虚拟变量,当值大于0和0且值小于或等于0时,其值为1。所以我想得到这个...

            a  b
2015-01-02  1  0
2015-01-05  0  0
2015-01-06  1  1
2015-01-07  0  1

我尝试了以下代码,但没有用...

y <- ifelse(x>0,1,0)
y
r if-statement rstudio xts dummy-variable
1个回答
2
投票

这里是一个选项,其中我们使用as.integer将逻辑转换为二进制并将结果分配回原始数据集

x[] <- as.integer(x > 0)

或使用算术

(x > 0) * 1
#           a b
#2015-01-02 1 0
#2015-01-05 0 0
#2015-01-06 1 1
#2015-01-07 0 1

或另一个选择是

(x > 0) + 0
© www.soinside.com 2019 - 2024. All rights reserved.