Message-ID: <26215786.post@talk.nabble.com>
Date: 2009-11-05T16:14:22Z
From: Ben Bolker
Subject: How to refer to the last a few rows?
In-Reply-To: <366c6f340911050617i5b2b833l9a109b0ad7b7ce56@mail.gmail.com>
Peng Yu wrote:
>
> 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))'.
>
>
Maybe not. I would say a reasonably standard R-ish way would
be
nc <- ncol(x); x[,(nc-5):nc]
Re: really long variable names, perhaps changing your variable naming style
would
be helpful?
If you frequently want the last few columns, then maybe writing
tailcol <- function(x,n=5) {
nc <- ncol(x); n <- max(0,nc-n); x[,(nc-n):nc]
}
(or something like that; you should decide what you want to happen
when n>nc)
and putting it in your own personal set of utilities would be helpful ...
--
View this message in context: http://old.nabble.com/How-to-refer-to-the-last-a-few-rows--tp25438026p26215786.html
Sent from the R help mailing list archive at Nabble.com.