我可以使用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)
答案 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
如果你想对每个小组做一些其他事情,我建议你开始一个新问题。