查找并合并组中的最后一行

时间:2018-02-14 14:04:36

标签: r dplyr

我可以使用dplyr查找数据集中的最后一行,并将该行的特定值合并回整个数据集。

data=data.frame(ID=c(rep(1,5),rep(2,5)), A=seq(1,10))
data=data %>% mutate(last_A=filter(.,row_number()==n())$A)

如何找到每个组的最后一行并将其合并回相应的组。我尝试了以下运行错误:

data=data %>% group_by(ID) %>% mutate(last_A=filter(.,row_number()==n())$A)

1 个答案:

答案 0 :(得分:0)

根据Jaap的建议,您可以使用dplyr::last()来回答原始问题。

library(dplyr)

data=data.frame(ID=c(rep(1,5),rep(2,5)), A=seq(1,10))

data %>% group_by(ID) %>% mutate(lastA = last(A))
#> # A tibble: 10 x 3
#> # Groups:   ID [2]
#>       ID     A lastA
#>    <dbl> <int> <int>
#>  1  1.00     1     5
#>  2  1.00     2     5
#>  3  1.00     3     5
#>  4  1.00     4     5
#>  5  1.00     5     5
#>  6  2.00     6    10
#>  7  2.00     7    10
#>  8  2.00     8    10
#>  9  2.00     9    10
#> 10  2.00    10    10

如果你想对每个小组做一些其他事情,我建议你开始一个新问题。