[R] Very puzzled why swapping the columns doesn't swap the column names

jim holtman jholtman at gmail.com
Mon Jun 16 14:18:21 CEST 2008


What you are doing with the assignment

m[,c(1,2)] <- m[,c(2,1)]

is only changing the values in the matrix; it knows nothing about the
names.  If you want the names of the columns switched, then you have
to do it:

> m <- cbind(x=1:3, y=2:4, z=3:5)
> m
     x y z
[1,] 1 2 3
[2,] 2 3 4
[3,] 3 4 5
> m[,c(1,2)] <- m[,c(2,1)]
> m
     x y z
[1,] 2 1 3
[2,] 3 2 4
[3,] 4 3 5
> colnames(m)[c(1,2)] <- colnames(m)[c(2,1)]
> m
     y x z
[1,] 2 1 3
[2,] 3 2 4
[3,] 4 3 5
>


On Mon, Jun 16, 2008 at 8:10 AM, Daren Tan <daren76 at hotmail.com> wrote:
>
> How can I swap the column names at the same time ?
>
>> m <- cbind(x=1:3, y=2:4, z=3:5)> m     x y z[1,] 1 2 3[2,] 2 3 4[3,] 3 4 5
>> m[,c(1,2)] <- m[,c(2,1)]> m     x y z[1,] 2 1 3[2,] 3 2 4[3,] 4 3 5
> _________________________________________________________________
>
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?



More information about the R-help mailing list