访问dataframe中的上一行,该行在日期索引时有间隙

访问dataframe中的上一行,该行在日期索引时有间隙,r,R,我有一个数据框索引日期,有4列'Open',High','Low','Close' 指数中的日期都是交易日期,因此不包括节假日和周末 我可以使用 dataframe["2015-12-27",] 我需要得到上一行和下一行的值。由于前一行不一定是“2015-12-26”,因为该日期可以是假日或周末,因此简单的算术减法不起作用 任何帮助都将不胜感激 更新:我想知道为什么投反对票。我认为这个答案将来肯定会让其他人受益。但是集体智慧可能有某种意义,我无法理解。如评论中所述,答案是: var1 <

我有一个
数据框
索引日期,有4列
'Open',High','Low','Close'

指数中的日期都是交易日期,因此不包括节假日和周末

我可以使用

dataframe["2015-12-27",]
我需要得到上一行和下一行的值。由于前一行不一定是“2015-12-26”,因为该日期可以是假日或周末,因此简单的算术减法不起作用

任何帮助都将不胜感激


更新:我想知道为什么投反对票。我认为这个答案将来肯定会让其他人受益。但是集体智慧可能有某种意义,我无法理解。

如评论中所述,答案是:

var1 <- match(as.Date("2015-12-26"), index(dataframe));
prevValue <- dataframe[var1-1,]
currentValue<- dataframe[var1,]
nextValue<- dataframe[var1+1,]

var1作为最后手段,您可以进行减法,直到得到有效(非NA/NULL)答案,然后在
tryCatch
中捕获结果。您可以使用match,即
i1@RomanLuštrik或更干净的解决方案。不确定“访问”是什么意思。但您可以再添加两列,它们是当前时间列的滞后和超前。例如
c(NA,df$col[1:(长度(df$col)-1)]
请用
dput