次いでhead()
とtail()
を利用することができます。
A <- matrix(rep(1:8, each = 5), nrow = 5)
tail(A, 3)
(印刷rownames /インデックスが異なっているすべてである)ほぼ
A[3:dim(A)[1],]
と同じです。あなたがtail()
を適応させることができ、列バージョンの
> tail(1:10, 4)
[1] 7 8 9 10
> tail(data.frame(A = 1:5, B = 1:5), 3)
A B
3 3 3
4 4 4
5 5 5
、が、それは少しトリッキーです:
あまりにもベクトルデータフレームのためのものな作業。 NROW()
とNCOL()
ではなくdim()
よりも、ここで役に立つかもしれないかしら?
> A[, 3:NCOL(A)]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3 4 5 6 7 8
[2,] 3 4 5 6 7 8
[3,] 3 4 5 6 7 8
[4,] 3 4 5 6 7 8
[5,] 3 4 5 6 7 8
またはその代わりに、物事をドロップすることをお願いし、その頭の上に、代わりのもののためにRを求めての、これを反転させます。これをカプセル化する関数は次のとおりです。
give <- function(x, i, dimen = 1L) {
ind <- seq_len(i-1)
if(isTRUE(all.equal(dimen, 1L))) { ## rows
out <- x[-ind, ]
} else if(isTRUE(all.equal(dimen, 2L))) { ## cols
out <- x[, -ind]
} else {
stop("Only for 2d objects")
}
out
}
> give(A, 3)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 2 3 4 5 6 7 8
[2,] 1 2 3 4 5 6 7 8
[3,] 1 2 3 4 5 6 7 8
> give(A, 3, dimen = 2)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 3 4 5 6 7 8
[2,] 3 4 5 6 7 8
[3,] 3 4 5 6 7 8
[4,] 3 4 5 6 7 8
[5,] 3 4 5 6 7 8
ヒント!ありがとう! alsa ncol(A)はdim(A)よりもはるかに短い[2]。ありがとう! – TMS