如何使用前一行和前一列中的值

Lee*_*e88 4 r dataframe dplyr

我正在尝试创建一个新变量,该变量是先前行和列的函数。我已经在dplyr中找到了lag()函数,但它无法完全实现我想要的功能。

library(dplyr)
x = data.frame(replicate(2, sample(1:3,10,rep=TRUE)))

   X1 X2
1   1  3
2   2  3
3   2  2
4   1  3
5   2  3
6   2  1
7   3  2
8   1  1
9   1  3
10  2  2

x = mutate(x, new_col = # if x2==1, then the value of x1 in the previous row,
                        # if x2!=1, then 0))
Run Code Online (Sandbox Code Playgroud)

我最好的尝试:

foo = function(x){
    if (x==1){
        return(lag(X1))
    }else{
        return(0)
}

x = mutate(x, new_col=foo(X1))
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以用 ifelse

x %>% 
  mutate(newcol = ifelse(X2==1, lag(X1), 0))
Run Code Online (Sandbox Code Playgroud)