使用尾部函数向后计数

时间:2017-11-19 09:31:19

标签: r

我有以下数据库。

df <- data.frame(col1 = c(0,0,1,1),col2 = c(1,0,0,4),col3 = c(1,0,0,3))

我想创建一个向后计数的列,以便在出现第一个&gt; 0值时识别第二个值。 因此,第4栏中数据库的预期答案为1,0,0,4。

我试过了,但是返回了矢量。

df$Test <- apply(df[,1:3],1,function(x)x[tail(which(x>0),2)])

最诚挚的问候, 圣拉斐尔

1 个答案:

答案 0 :(得分:0)

我们可能需要

x1 <- apply(df, 1, function(x) x[x >0][2])
replace(x1, is.na(x1), 0)
#[1] 1 0 0 4