Your names are not syntactically valid. Consider:
> mat <- matrix(1:9, nrow = 3) > colnames(mat) <- letters[1:3] > mat a b c [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > data.frame(x=1:3,mat) x a b c 1 1 1 4 7 2 2 2 5 8 3 3 3 6 9 See ?make.names, and the "Value" section of ?data.frame for how names are constructed. Michael's suggestion produces a matrix, not a data frame. dimnames of matrices apparently have different rules for validity. Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Sun, Dec 9, 2018 at 7:05 AM Jinsong Zhao <jsz...@yeah.net> wrote: > Hi there, > > In the following mini-example, I hope to keep the column names of mat, but > failed. > > # mini-example > > mat <- matrix(1:9, nrow = 3) > > colnames(mat) <- paste("(", 1:3, ")", sep = "") > > mat > (1) (2) (3) > [1,] 1 4 7 > [2,] 2 5 8 > [3,] 3 6 9 > > data.frame(x = 1:3, mat) > x X.1. X.2. X.3. > 1 1 1 4 7 > 2 2 2 5 8 > 3 3 3 6 9 > > Any hints will be really appreciated. > > Best, > Jinsong > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.