R 使用另一列的上一个值创建新列

R 使用另一列的上一个值创建新列,r,dataframe,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

我有一个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 
#设置数据帧

df这样做:
df$col3查看
?lag
。这样做:
df$col3因为
lag
来自
dplyr
,你可以做
df%>%groupby(col1)%%>%mutate(col3=lag(col2))
请查看并在回答后回来检查。