Suppose I have a data.frame called SLV and I apply the tail()function. I will get this:
> 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() defaults to the last 6 values, but it's easy to get just the last 1 value.
>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
But what is the best way to return the second to last day? In our SLV example, it would be the line that is dated 2010-12-10.
For yet another alternative:
tail(SLV,2)[-2]
head(tail(SLV, n=2), n=1)
or
SLV[nrow(SLV)-1,]
will do it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With