2010-12-15 14 views
4

SLVというdata.frameがあり、tail()関数を適用したとします。最後の6つの値にR data.frameの2番目から最後の値にアクセスする最も良い方法は何ですか?

> 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 

尾()のデフォルトを、それだけで、最後の1つの値を取得するのは簡単です:私はこれを取得します。

​​

しかし、2日目から最後の日に戻す最善の方法は何ですか?私たちのSLVの例では、2010-12-10の日付です。

答えて

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

又は

SLV[nrow(SLV)-1,] 

それを行います。

tail(SLV,2)[-2] 
+0

両方のためにありがとう – Milktrader

+1

私は2番目の解決策は、タスクを行う適切な方法だと思う。最初のコードは 'head'と' tail'の基礎となるコードを見ると複雑すぎます。 – Marek

+0

+1 /頭尾は、実装に関係なく、私の経験では堅牢です。 – mdsumner

3

ヘッド(尾(SLV、N = 2)であり、n = 1)

+0

同じ回答が同時に表示されることを確認すると良いです。ありがとう。 – Milktrader

4

SLV[rev(1:nrow(SLV))[2],] 

リテラル[2]はベクトルで置換することができます2つ以上の行が必要な場合は、おそらくもっと使いやすいでしょう。

+0

私はこれも好きです。 – Milktrader

0

非常にわずかに、より一般的なSLVより【nrow(SLV)-1]:さらに別の代替のため

+1

代わりに 'rev(1:nrow(SLV))'を使うと '(nrow(SLV):1)'を使うことができます。 – Marek

関連する問題