访问R data.frame中倒数第二个值的最佳方法是什么?

Mil*_*der 9 r dataframe

假设我有一个名为SLV的data.frame,我应用了tail()函数.我会得到这个:

> tail(SLV)

       SLV.Open SLV.High SLV.Low SLV.Close SLV.Volume SLV.Adjusted
2010-12-06    28.99    29.64   28.88     29.51   57561800        29.51
2010-12-07    29.95    30.00   28.03     28.08   69143800        28.08
2010-12-08    28.33    28.46   27.34     27.70   58203800        27.70
2010-12-09    28.10    28.36   27.83     28.03   36759200        28.03
2010-12-10    27.80    28.11   27.38     27.98   30602700        27.98
2010-12-13    28.84    29.04   28.59     28.87   25901800        28.87
Run Code Online (Sandbox Code Playgroud)

tail()默认为最后6个值,但很容易得到最后1个值.

>tail(SLV, n=1)

       SLV.Open SLV.High SLV.Low SLV.Close SLV.Volume SLV.Adjusted
2010-12-13    28.84    29.04   28.59     28.87   25901800        28.87
Run Code Online (Sandbox Code Playgroud)

但是,返回倒数第二天的最佳方式是什么?在我们的SLV示例中,它将是2010-12-10的日期.

koh*_*ske 20

head(tail(SLV, n=2), n=1)
Run Code Online (Sandbox Code Playgroud)

要么

SLV[nrow(SLV)-1,]
Run Code Online (Sandbox Code Playgroud)

会做的.

  • 我认为第二种解决方案是完成任务的正确方法。当您查看“ head”和“ tail”中的基础代码时,第一个过于复杂。 (2认同)

Jos*_*ich 7

还有另一种选择:

tail(SLV,2)[-2]
Run Code Online (Sandbox Code Playgroud)