假设我有一个名为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的日期。
答案 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]可以替换为可能更整洁的矢量。