To me the interesting difference between matrix() and as.matrix() is that as.matrix() retains the argument names as the rows names of the result. > tmp <- structure(1:3, names=letters[1:3]) > tmp a b c 1 2 3 > matrix(tmp) [,1] [1,] 1 [2,] 2 [3,] 3 > as.matrix(tmp) [,1] a 1 b 2 c 3 >
On Tue, Feb 5, 2019 at 6:53 PM Rolf Turner <r.tur...@auckland.ac.nz> wrote: > > > On 2/6/19 12:27 PM, Jeff Newmiller wrote: > > > I have no idea about "why it is this way" but there are many cases > > where I would rather have to use backticks around > > syntactically-invalid names than deal with arbitrary rules for > > mapping column names as they were supplied to column names as R wants > > them to be. From that perspective, making the conversion function > > leave the names alone and limit the name-mashing to one function > > sounds great to me. You can always call make.names yourself. > > Fair enough. My real problem was getting ambushed by the fact that > *different* names arise depending on whether one uses data.frame(X) > or as.data.frame(X). I'll spare you the details. :-) > > cheers, > > Rolf > > > > > On February 5, 2019 2:22:24 PM PST, Rolf Turner > > <r.tur...@auckland.ac.nz> wrote: > >> > >> Consider the following: > >> > >> set.seed(42) X <- matrix(runif(40),10,4) colnames(X) <- > >> c("a","b","a:x","b:x") # Imitating the output # of model.matrix(). > >> D1 <- as.data.frame(X) D2 <- data.frame(X) names(D1) [1] "a" "b" > >> "a:x" "b:x" names(D2) [1] "a" "b" "a.x" "b.x" > >> > >> The names of D2 are syntactically valid; those of D1 are not. > >> > >> Why should I have expected this phenomenon? :-) > >> > >> The as.data.frame() syntax seems to me much more natural for > >> converting > >> > >> a matrix to a data frame, yet it doesn't get it quite right, > >> sometimes, in respect of the names. > >> > >> Is there some reason that as.data.frame() does not apply > >> make.names()? Or was this just an oversight? > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.