【发布时间】:2018-07-25 03:21:50
【问题描述】:
我可以使用 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)
【问题讨论】:
-
使用
last-函数dplyr:data %>% group_by(ID) %>% mutate(lastA = last(A)) -
感谢您解决了这个问题。但是,有没有办法将每个子组传递给变异?可以选择在 mutate 中传递一个将整个组作为输入的自定义函数?
-
如果是
data.table,您可以使用data[, lastA := A[.N], by = ID]