[英]Calculating the difference between consecutive rows by group using dplyr?
我有一個ID和時間戳的數據框。 我想計算單個id的每個順序時間戳之間的差異。
我的數據框如下所示:
id time
Alpha 1
Alpha 4
Alpha 7
Beta 5
Beta 10
我正在嘗試在下面添加一列類似time.difference
:
id time time.difference
Alpha 1 NA
Alpha 4 3
Alpha 7 4
Beta 5 NA
Beta 10 5
是否有使用dplyr的干凈方法? (或提迪爾或其他比香草R更容易閱讀的東西?)
像這樣:
dat %>%
group_by(id) %>%
mutate(time.difference = time - lag(time))
使用data.table
library(data.table)
library(dplyr)
setDT(dat)[, time.difference := time - lag(time, 1L), by = id]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.