I'm using 1.9.0 on Windoze 2k and I created a numeric matrix and used colnames() to give it some column names, but if I try to select a column using matrixname$validname I get a null return but if I use matrixname[,4] it works fine. Looking at the help I think this is because a matrix is not a recursive structure and I think it's saying I shouldn't be surprised nor attempt this. I'm in the process of transferring all my stats work to R having used a mixture of SPSS, S and SAS (and snippets of other things) over the years so sorry if I'm being dumb but this surprised me and I'd love a kindly explanation as I thought indexing a matrix in this way was something I did regularly (I think the last time was actually using it on a dataframe though) and I also think it would be useful and produce more readable code if I could. Can some kindly soul explain? TIA, Chris
You can access a column of a dataframe using $ but not a matrix.
That's just how it is. You can access a column of a matrix
via its column name using, for example
> m <- matrix(1:12, 4, 3)
> colnames(m) <- c("a", "b", "c")
> m[, "b"]
[1] 5 6 7 8
-roger
chris1 wrote:> I'm using 1.9.0 on Windoze 2k and I created a numeric matrix and used
> colnames() to give it some column names, but if I try to select a
> column using matrixname$validname I get a null return but if I use
> matrixname[,4] it works fine. Looking at the help I think this is
> because a matrix is not a recursive structure and I think it's saying
> I shouldn't be surprised nor attempt this.
>
> I'm in the process of transferring all my stats work to R having used
> a mixture of SPSS, S and SAS (and snippets of other things) over the
> years so sorry if I'm being dumb but this surprised me and I'd love
a
> kindly explanation as I thought indexing a matrix in this way was
> something I did regularly (I think the last time was actually using it
> on a dataframe though) and I also think it would be useful and produce
> more readable code if I could.
>
> Can some kindly soul explain?
>
> TIA,
>
> Chris
>
> ______________________________________________
> 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
>
chris1 <chris1 at psyctc.org> writes:> I'm using 1.9.0 on Windoze 2k and I created a numeric matrix and used > colnames() to give it some column names, but if I try to select a > column using matrixname$validname I get a null return but if I use > matrixname[,4] it works fine. Looking at the help I think this is > because a matrix is not a recursive structure and I think it's saying > I shouldn't be surprised nor attempt this. > > I'm in the process of transferring all my stats work to R having used > a mixture of SPSS, S and SAS (and snippets of other things) over the > years so sorry if I'm being dumb but this surprised me and I'd love a > kindly explanation as I thought indexing a matrix in this way was > something I did regularly (I think the last time was actually using it > on a dataframe though) and I also think it would be useful and produce > more readable code if I could. > > Can some kindly soul explain?As Roger indirectly indicated in his response, you probably want to use data frames and not matrices to store your data sets. In the S language the data frame is analogous to the SAS data set.
as.data.frame(matrixname)$validname chris1 <chris1 <at> psyctc.org> writes: : : I'm using 1.9.0 on Windoze 2k and I created a numeric matrix and used : colnames() to give it some column names, but if I try to select a : column using matrixname$validname I get a null return but if I use : matrixname[,4] it works fine. Looking at the help I think this is : because a matrix is not a recursive structure and I think it's saying : I shouldn't be surprised nor attempt this. : : I'm in the process of transferring all my stats work to R having used : a mixture of SPSS, S and SAS (and snippets of other things) over the : years so sorry if I'm being dumb but this surprised me and I'd love a : kindly explanation as I thought indexing a matrix in this way was : something I did regularly (I think the last time was actually using it : on a dataframe though) and I also think it would be useful and produce : more readable code if I could. : : Can some kindly soul explain? : : TIA, : : Chris : : ______________________________________________ : 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 : :