减去R中的连续值

减去R中的连续值,r,formula,R,Formula,基本上我有这样的数据: 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::l

基本上我有这样的数据:

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

希望它能从base 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

到目前为止您尝试了什么?@P9710053对于所有计算来说都是3.133*常量Voking
dplyr
和calling
na。对于这个简单的任务,省略似乎有点太多了<代码>df$Begin[-1]-(df$End df$Begin)[-nrow(df)]
足够了。正确。我打算使用基本函数来创建滞后var,但是使用
dplyr
lag
它变得非常可读。