it looks to me that the names are cranked through make.names for data frames case while that doesn't happen for matrices. Peeking into the `colnames<-` code supports this idea, but that in turn uses `names<-` which is a primitive and so defies further easy peeking.
The data.frame function provides the check.names parameter to switch this on / off, but for other classes this checking doesn't seem to be provided. Perhaps the idea behind this discrepancy is to enable the use of the $ operator to access columns of the data frame, while that's not possible for matrices anyway. (Personally, I don't find the results of make.names that useful, though, and I tend to sanitise them myself when working with data frames with unwieldy column names). Best regards, Jan On Thu, Jan 21, 2021 at 03:58:44PM -0500, Bernard McGarvey wrote: > Here is an example piece of code to illustrate an issue: > > rm(list=ls()) # Clear Workspace > # > Data1 <- matrix(data=rnorm(9,0,1),nrow=3,ncol=3) > Colnames1 <- c("(A)","(B)","(C)") > colnames(Data1) <- Colnames1 > print(Data1) > DataFrame1 <- data.frame(Data1) > print(DataFrame1) > colnames(DataFrame1) <- Colnames1 > print(DataFrame1) > > The results I get are: > > (A) (B) (C) > [1,] 0.4739417 1.3138868 0.4262165 > [2,] -2.1288083 1.0333770 1.1543404 > [3,] -0.3401786 -0.7023236 -0.2336880 > X.A. X.B. X.C. > 1 0.4739417 1.3138868 0.4262165 > 2 -2.1288083 1.0333770 1.1543404 > 3 -0.3401786 -0.7023236 -0.2336880 > (A) (B) (C) > 1 0.4739417 1.3138868 0.4262165 > 2 -2.1288083 1.0333770 1.1543404 > 3 -0.3401786 -0.7023236 -0.2336880 > > so that when I make the matrix with headings the parentheses are replaced by > periods but I can add them after creating the data frame and the column > headings are correct. > > Any ideas on why this occurs? > > Thanks > > > Bernard McGarvey > Director, Fort Myers Beach Lions Foundation, Inc. > Retired (Lilly Engineering Fellow). > > ______________________________________________ > 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.