R和dyplr中的数据帧重新排序(变异)

时间:2015-07-15 13:12:07

标签: r dataframe dplyr

我有一个像这样的数据框

Number  Type  Time 
4         B     10
5         B     11
5         B      9
1         B      8
8         R      7
3         R      9
4         R      5
4         R      5

我按类型分组并希望创建一个名为" Adjusted_Time"的新列。它包含之前的数字时间,最终的Df看起来像这样

Number  Type  Time      Adjusted_Time
4         B     10           8         
5         B     11          10
6         B      9          11
3         B      8          N/A
8         R      7           9          
7         R      9           5
6         R      5           5
5         R      5          N/A

只要不存在直接低于该数字的数字,N / A就会消失。 我想用dplyr来做这件事 现在我有

df %>% group_by(Type) %>% Mutate(Adjusted_Time = ....)

1 个答案:

答案 0 :(得分:1)

您正在寻找的功能是lag

df %>% group_by(Type) %>% arrange(Number) %>% mutate(Adjusted_Time = lag(Time))

Source: local data frame [8 x 4]
Groups: Type
  Number Type Time Adjusted_Time
1      1    B    8            NA
2      4    B   10             8
3      5    B   11            10
4      5    B    9            11
5      3    R    9            NA
6      4    R    5             9
7      4    R    5             5
8      8    R    7             5

有关详细信息,请参阅:

http://cran.r-project.org/web/packages/dplyr/vignettes/window-functions.html