如何在引用布尔数组中的前一行时创建新的布尔数组?

时间:2017-12-22 13:54:52

标签: r

我是R的新人。

我有一个非常简单的问题:

A  

0  
0  
1  
0  
0  
0  
1  
0  
0  

现在我要创建B,其中:如果A = 1或“B-1”(前一行)= 1则B = 1,所以:

A B

0 0  
0 0  
1 1  
0 1  
0 1  
0 1  
1 1  
0 1  
0 1  

提前感谢您的帮助!!

1 个答案:

答案 0 :(得分:0)

这是Stack Overflow的问题,但我没有足够的声誉来发表评论!

此外,你的向量B将等于0直到A的第一个值为1.从那时起它将重复1直到结束。所以你真的只需要评估A直到第一个值为1.然后你就会知道有多少0和1需要B.

last_0 <- which(A == 1)[1] - 1

B <- c(rep(0, last_0), rep(1, length(A) - last_0))

这概括为A和B的任何长度。