用另一个列中的先前值创建一个新列

时间:2019-06-24 20:49:09

标签: r dataframe

我有一个R data.frame,如下所示。我想创建一个新列col3,该列将具有按col2分组的col1的先前值。我怎样才能做到这一点?

# Set up dataframe
df <- data.frame(
  col1=c('a','a','a','b','b','b'),
  col2=c('action1', 'action2', 'action3', 'action1', 'action2', 'action3')
)
df
  col1    col2 
1    a action1
2    a action2
3    a action3
4    b action1
5    b action2
6    b action3

# What I want: 
df
  col1    col2    col3
1    a action1       NA
2    a action2  action1
3    a action3  action2
4    b action1       NA
5    b action2  action1
6    b action3  action2 

1 个答案:

答案 0 :(得分:0)

这样做:df$col3 <- unlist(tapply(df$col2, df$col1, lag))