csv ファイルを「d」というデータ フレームに読み込むとします。このデータ フレームの最後の 2 行を印刷したいと思います。以下を試しましたが、n-1から始まるすべてのコンテンツを印刷しています。誰かがこの動作を理解するのを手伝ってくれますか?
> n<-nrow(d)
> n
[1] 153
> subset(d[n:n-1,])
csv ファイルを「d」というデータ フレームに読み込むとします。このデータ フレームの最後の 2 行を印刷したいと思います。以下を試しましたが、n-1から始まるすべてのコンテンツを印刷しています。誰かがこの動作を理解するのを手伝ってくれますか?
> n<-nrow(d)
> n
[1] 153
> subset(d[n:n-1,])
@mnel は、おそらく tail() を使用するのが最も簡単であるという点で正しいですが、あなたの混乱は、subset() とインデックス作成が一般的にどのように機能するかに関係していると思います。あなたの例では、マトリックスとdata.framesのインデックス付け方法に注意してください。
d[(n:n - 1), ]
と同じではありません
d[n:(n-1), ]
操作の順序を理解することが重要であるため、違いを注意深く確認してください。また、subset() 関数は、論理インジケーターに基づいてインデックスを作成し、次の形式を持ちます。
subset(object, subset = logicalvector)
ここで、論理ベクトルは、抽出する行を示します。詳細については、?subset を参照してください。
しっぽだけ使えます
tail(d, 2)
最後の 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
私は使用します:
tail(d, 2)
または
d[(n-1):n, ]
それが役立つことを願っています