2013-01-08 15 views
5

"d"というデータフレームにcsvファイルを読み込むとします。このデータフレームの最後の2行を印刷したいと思います。私は以下を試しましたが、n-1から始まるすべての内容を印刷しています。誰かが私にこの行動を理解させる助けてもらえますか?これは私のために働いているデータフレームのサブセットの抽出R

> n<-nrow(d) 
> n 
[1] 153 
> subset(d[n:n-1,]) 
+0

'5ホープ:5-1 [1] 4' ... –

答えて

6

は、最後の2行を与えるだろう。

2

...あなただけの尾

tail(d, 2) 

を使用することができます

d <- matrix(1:10,nrow=5) 
d 
    [,1] [,2] 
[1,] 1 6 
[2,] 2 7 
[3,] 3 8 
[4,] 4 9 
[5,] 5 10 

d <- as.data.frame(d) 
d 
    V1 V2 
1 1 6 
2 2 7 
3 3 8 
4 4 9 
5 5 10 

n <- nrow(d) 
> n 
[1] 5 
d[n:(n-1),] ## Specifying the number of the row inside the brackets. 
V1 V2 
5 5 10 
4 4 9 

d[n:n-1,] ## without brackets it will do 5:5 -1 = 4, so printing only the fourth row 
    V1 V2 
4 4 9 
+0

不要サブセットはこちら。あなたは[を使用しています。 – mnel

+0

@mnel yeah rite .. :)答えを編集しました。 – user1021713

6

@mnelはtail()を使うのが最も簡単だろうと思っていますが、あなたの混乱はsubset()とインデックス作成の一般的な仕組みと関係があります。

d[(n:n - 1), ] 

d[n:(n-1), ] 

と同じではありませんので、あなたの例では、どのようにインデックス行列とdata.framesに留意するので、操作の順序を理解することが重要であり、慎重ので、違いを確認してください。 サブセット()関数は、インデックスが論理的指標に基づいて、論理ベクトルを取り出したい行を与える形

subset(object, subset = logicalvector) 

を持っています。詳細は「サブセット」を参照してください。

1

は、私が使用します。 tail(d, 2) または d[(n-1):n, ] はそれが

関連する問題