我想總結一個組中的所有滯后值。
使用cars例如資料;
#This returns what I want
for (i in 1:nrow(cars)) {
First<-which(cars$speed==cars[i,"speed"])[1]
cars[i,"DistSum"]<-sum(cars[First:i,"dist"], na.rm = T)
}
head(cars)
但是,我不想為此使用 for 回圈,我希望以下內容回傳我想要的內容。如果我可以lag回傳一個應該可以解決問題的組中的所有先前值。
#dplyr version that does not work
cars <- (cars %>%
dplyr::group_by(speed) %>%
dplyr::mutate(DistSum = sum(lag(dist))) %>%
ungroup())
另一種思考方式可能是我需要sum(lag(dist, n = ALL)).
uj5u.com熱心網友回復:
library(dplyr)
cars %>%
group_by(speed) %>%
mutate(DistSum = cumsum(dist)) %>%
ungroup() %>%
head()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/426674.html
上一篇:僅當存在于每個子串列中時才使用purrr::map提取元素
下一篇:僅使用R為連續時間點創建滯后變數
