Ah - that's an excellent point. Thanks.
> On Oct 28, 2023, at 14:54, Jeff Newmiller <jdnew...@dcn.davis.ca.us> wrote: > > as.data.frame is a _converter_, while data.frame is a _constructor_. > Changing the object contents is not what a conversion is for. > > On October 28, 2023 11:39:22 AM PDT, Boris Steipe <boris.ste...@utoronto.ca> > wrote: >> Thanks Duncan and Avi! >> >> That you could use NULL in a matrix() dimnames = list(...) argument wasn't >> clear to me. I thought that would be equivalent to a one-element list - and >> thereby define rownames. So that's good to know. >> >> The documentation could be more explicit - but it is probably more work to >> do that than just patch the code to honour a col.names argument. (At least I >> can't see a reason not to.) >> >> Thanks again! >> :-) >> >> >> >> >>> On Oct 28, 2023, at 14:24, avi.e.gr...@gmail.com wrote: >>> >>> Борис, >>> >>> Try this where you tell matrix the column names you want: >>> >>> nouns <- as.data.frame( >>> matrix(c( >>> "gaggle", >>> "geese", >>> >>> "dule", >>> "doves", >>> >>> "wake", >>> "vultures" >>> ), >>> ncol = 2, >>> byrow = TRUE, >>> dimnames=list(NULL, c("collective", "category")))) >>> >>> Result: >>> >>>> nouns >>> collective category >>> 1 gaggle geese >>> 2 dule doves >>> 3 wake vultures >>> >>> >>> The above simply names the columns earlier when creating the matrix. >>> >>> There are other ways and the way you tried LOOKS like it should work but >>> fails for me with a message about it weirdly expecting three rows versus two >>> which seems to confuse rows and columns. My version of R is recent and I >>> wonder if there is a bug here. >>> >>> Consider whether you really need the data.frame created in a single >>> statement or can you change the column names next as in: >>> >>> >>>> nouns >>> V1 V2 >>> 1 gaggle geese >>> 2 dule doves >>> 3 wake vultures >>>> colnames(nouns) >>> [1] "V1" "V2" >>>> colnames(nouns) <- c("collective", "category") >>>> nouns >>> collective category >>> 1 gaggle geese >>> 2 dule doves >>> 3 wake vultures >>> >>> Is there a known bug here or is the documentation wrong? >>> >>> -----Original Message----- >>> From: R-help <r-help-boun...@r-project.org> On Behalf Of Boris Steipe >>> Sent: Saturday, October 28, 2023 1:54 PM >>> To: R. Mailing List <r-help@r-project.org> >>> Subject: [R] col.names in as.data.frame() ? >>> >>> I have been trying to create a data frame from some structured text in a >>> single expression. Reprex: >>> >>> nouns <- as.data.frame( >>> matrix(c( >>> "gaggle", >>> "geese", >>> >>> "dule", >>> "doves", >>> >>> "wake", >>> "vultures" >>> ), ncol = 2, byrow = TRUE), >>> col.names = c("collective", "category") >>> ) >>> >>> But ... : >>> >>>> str(nouns) >>> 'data.frame': 3 obs. of 2 variables: >>> $ V1: chr "gaggle" "dule" "wake" >>> $ V2: chr "geese" "doves" "vultures" >>> >>> i.e. the col.names argument does nothing. From my reading of ?as.data.frame, >>> my example should have worked. >>> >>> I know how to get the required result with colnames(), but I would like to >>> understand why the idiom as written didn't work, and how I could have known >>> that from the help file. >>> >>> >>> Thanks! >>> Boris >>> >>> ______________________________________________ >>> 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. > > -- > Sent from my phone. Please excuse my brevity. ______________________________________________ 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.