[R] how to keep colnames of matrix when put it into a data frame

Rui Barradas ruipb@rr@d@@ @ending from @@po@pt
Sun Dec 9 16:56:13 CET 2018


Hello,

cbind alone will return a matrix, cbind.data.frame is probably what the 
OP wants.

class(cbind(x = 1:3, mat))
#[1] "matrix"

cbind.data.frame(x = 1:3, mat)
#  x (1) (2) (3)
#1 1   1   4   7
#2 2   2   5   8
#3 3   3   6   9


Hope this helps,

Rui Barradas


Às 15:11 de 09/12/2018, Michael Dewey escreveu:
> Dear Jinsong
> 
> Try cbind(x = 1:3, mat)
> and see if that helps
> 
> Michael
> 
> On 09/12/2018 15:05, Jinsong Zhao 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 using 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.
>>
>



More information about the R-help mailing list