[R] rownames of single row matrices
Eric Lecoutre
lecoutre at stat.ucl.ac.be
Fri Jun 11 10:15:28 CEST 2004
Hi Robin
Have a look at:
> help("[")
The fact that dimensions are lost when extracting is a feature of the language.
What you need is the "drop" option.
> a[1,,drop=FALSE]
A B C
a 1 4 7
Eric
At 10:09 11/06/2004, Robin Hankin wrote:
>Hi
>
>I want to extract rows of a matrix, and preserve rownames even if only
>one row is selected. Toy example:
>
>R> a <- matrix(1:9,3,3)
>R> rownames(a) <- letters[1:3]
>R> colnames(a) <- LETTERS[1:3]
>R> a
> A B C
>a 1 4 7
>b 2 5 8
>c 3 6 9
>
>
>Extract the first two rows:
>R> wanted <- 1:2
>R> a[wanted,]
> A B C
>a 1 4 7
>b 2 5 8
>
>rownames come through fine. Now extract just
>one row:
>
>R> a[1,]
>A B C
>1 4 7
>
>
>rowname is lost! (also note that this isn't a 1-by-n matrix as
>needed. This object
>is a vector). How do I get the rowname back?
>My best effort is:
>
>extract <- function(a,wanted){
> if(length(wanted)>1) {
> return(a[wanted,])
> } else {
> out <- t(as.matrix(a[wanted,]))
> rownames(out) <- rownames(a)[wanted]
> return(out)
> }
>}
>
>[note the transpose and as.matrix()]. There must be a better way!
>Anyone got any better ideas?
>
>What is the R rationale for treating a[1,] so differently from a[1:2,] ?
>
>
>--
>Robin Hankin
>Uncertainty Analyst
>Southampton Oceanography Centre
>SO14 3ZH
>tel +44(0)23-8059-7743
>initialDOTsurname at soc.soton.ac.uk (edit in obvious way; spam precaution)
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list