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

时间:2010-12-15 01:12:38

标签: 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

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

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

4 个答案:

答案 0 :(得分:19)

head(tail(SLV, n=2), n=1)

SLV[nrow(SLV)-1,]

会这样做。

答案 1 :(得分:6)

还有另一种选择:

tail(SLV,2)[-2]

答案 2 :(得分:3)

头部(尾部(SLV,n = 2),n = 1)

答案 3 :(得分:0)

略高于SLV [nrow(SLV)-1,]:

SLV[rev(1:nrow(SLV))[2],]
如果需要多行,

Literal [2]可以替换为可能更整洁的矢量。