[R] Col names in a data frame

Bernard Comcast mcg@rvey@bern@rd @end|ng |rom comc@@t@net
Thu Jan 21 22:45:20 CET 2021


Thanks - I had seen that parameter but did not think the ( would be illegal but now I understand why it considers it illegal.

Thanks again

Bernard
Sent from my iPhone so please excuse the spelling!"

> On Jan 21, 2021, at 4:14 PM, Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
> 
> On 21/01/2021 3:58 p.m., 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?
> 
> By default, data.frame() uses names that are legal variable names, so you can do things like Data1$X.A. You can stop this change by saying
> 
> DataFrame1 <- data.frame(Data1, check.names=FALSE)
> 
> Duncan Murdoch



More information about the R-help mailing list