[英]subtracting consecutive values in R
基本上我有這樣的數據:
Begin.Time..s. 1.039*** 3.133* 5.156 7.168 9.249 11.362
End.Time..s. 1.383** 3.437 5.5 7.539 9.546 11.674
我想做以下操作:
3.133* - (1.383** - 1.039***)
然后繼續直到數據結束。
使用dplyr
的lag
函數,我們可以執行以下操作,
df$Begin[-1] - na.omit(dplyr::lag(df$End - df$Begin))
#[1] 2.789 4.852 6.824 8.878 11.065
數據
dput(df)
structure(list(Begin = c(1.039, 3.133, 5.156, 7.168, 9.249, 11.362
), End = c(1.383, 3.437, 5.5, 7.539, 9.546, 11.674)), .Names = c("Begin",
"End"), row.names = c(NA, -6L), class = "data.frame")
編輯基於@nicola 的建議,更輕松的方法是
df1$Begin[-1]-(df1$End-df1$Begin)[-nrow(df1)]
#[1] 2.789 4.852 6.824 8.878 11.065
希望它可能對基礎 R 有用
df1$Begin[2:length(df1$Begin)]-(df1$End[1:5]-df1$Begin[1:5])
[1] 2.789 4.852 6.824 8.878 11.065
從以前的 OP sotos 復制而來
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.