[R] How to refer to the last a few rows?

baptiste auguie baptiste.auguie at googlemail.com
Thu Nov 5 15:50:19 CET 2009


>From utils:::tail.data.frame, you could define your own,

tail =
function (x, n = 6L, colwise=FALSE, ...)
{
    stopifnot(length(n) == 1L)
    nrx <- if(colwise) ncol(x) else nrow(x)
    n <- if (n < 0L)
        max(nrx + n, 0L)
    else min(n, nrx)
if (colwise)
  x[ ,seq.int(to = nrx, length.out = n), drop = FALSE] else
  x[seq.int(to = nrx, length.out = n), , drop = FALSE]
}

m = matrix(1:30, 5)

tail(m,2)
tail(m, 2, colwise=TRUE)


HTH,

baptiste

2009/11/5 Peng Yu <pengyu.ut at gmail.com>:
> On Thu, Nov 5, 2009 at 7:24 AM, jim holtman <jholtman at gmail.com> wrote:
>> will this do:
>>
>>> x
>>     [,1] [,2] [,3] [,4] [,5]
>> [1,]    1    6   11   16   21
>> [2,]    2    7   12   17   22
>> [3,]    3    8   13   18   23
>> [4,]    4    9   14   19   24
>> [5,]    5   10   15   20   25
>>> tail(x[,tail(seq(ncol(x),3))], 2)
>>     [,1] [,2] [,3]
>> [4,]   24   19   14
>> [5,]   25   20   15
>>>
>
> I would avoid to type the variable name twice. Because this is very
> inconvenient when the variable name is long.
>
> a_loooooooooooooooooong_expression_or_variable[nrow(a_loooooooooooooooooong_expression_or_variable),]
>
> BTW, you misunderstood my question. My question was whether is a
> better way to get the last a few columns than 't(tail(t(x),2))'.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>




More information about the R-help mailing list