使用ifelse引用向量中的先前值

时间:2017-12-13 09:55:44

标签: r

我是R编程的新手。

我有一个简单的问题,考虑一个矩阵:

A B
0 0
1 0
0 0
0 0
1 0
0 0

如果A中出现1,我想用B填充B,如下所示:

A B
0 0
1 1
0 1
0 1
1 1
0 1

这样:

b = ifelse(a == 1 | b[-1] == 1,0)

但它不起作用。

1 个答案:

答案 0 :(得分:0)

如果x是您的矩阵:

     A B
[1,] 0 0
[2,] 1 0
[3,] 0 0
[4,] 0 0
[5,] 0 0
[6,] 1 0

然后你可以这样做:

x[min(which(x[, "A"] == 1)):nrow(x), "B"] <- 1

这将在A列中找到第一次出现1的位置,然后从该点开始用1填充B列。从您的问题看来,这就是您想要做的事情。