Re: [R] Col names in a data frame
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 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 __ 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.
Re: [R] Col names in a data frame
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 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 __ 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.
Re: [R] Col names in a data frame
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.
Re: [R] Col names in a data frame
Hi, data.frame() checks names by default to ensure that column names are legal, but there's an argument to change that. >From ?data.frame() check.names: logical. If ‘TRUE’ then the names of the variables in the data frame are checked to ensure that they are syntactically valid variable names and are not duplicated. If necessary they are adjusted (by ‘make.names’) so that they are. Sarah On Thu, Jan 21, 2021 at 3:59 PM 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). > -- Sarah Goslee (she/her) http://www.numberwright.com __ 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.
Re: [R] Col names in a data frame
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 __ 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.
Re: [R] Col names in a data frame
rm(list=ls()) is a bad practice... especially when posting examples. It doesn't clean out everything and it removes objects created by the user. Read ?data.frame, particularly regarding the check.names parameter. The intent is to make it easier to use DF$A notation, though DF$`(A)` is usable if you are somewhat experienced with R. On January 21, 2021 12:58:44 PM PST, 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. -- 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.
[R] Col names in a data frame
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.
Re: [R] Col Names
Is this what you are looking for: > x Positions DEV.MSCI 04/30/1980 00:00:00.000 -0.0150328542 05/31/1980 00:00:00.000 0.0005087752 06/30/1980 00:00:00.000 0.0586794492 07/31/1980 00:00:00.000 0.0458505592 08/31/1980 00:00:00.000 0.0350926728 > colnames(x)[2] <- "NewName" > x Positions NewName 04/30/1980 00:00:00.000 -0.0150328542 05/31/1980 00:00:00.000 0.0005087752 06/30/1980 00:00:00.000 0.0586794492 07/31/1980 00:00:00.000 0.0458505592 08/31/1980 00:00:00.000 0.0350926728 On Wed, Apr 8, 2009 at 10:45 AM, livia wrote: > > Hello, > > I am working with S-plus TimeSeries Object. I wonder how can I change the > column names of the variable instead of using the one default? > > i.e to change "DEV.MSCI" to other name > Positions DEV.MSCI > 04/30/1980 00:00:00.000 -0.0150328542 > 05/31/1980 00:00:00.000 0.0005087752 > 06/30/1980 00:00:00.000 0.0586794492 > 07/31/1980 00:00:00.000 0.0458505592 > 08/31/1980 00:00:00.000 0.0350926728 > > -- > View this message in context: > http://www.nabble.com/Col-Names-tp22952055p22952055.html > Sent from the R help mailing list archive at Nabble.com. > > __ > R-help@r-project.org mailing list > 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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? __ R-help@r-project.org mailing list 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] Col Names
Hello, I am working with S-plus TimeSeries Object. I wonder how can I change the column names of the variable instead of using the one default? i.e to change "DEV.MSCI" to other name PositionsDEV.MSCI 04/30/1980 00:00:00.000 -0.0150328542 05/31/1980 00:00:00.000 0.0005087752 06/30/1980 00:00:00.000 0.0586794492 07/31/1980 00:00:00.000 0.0458505592 08/31/1980 00:00:00.000 0.0350926728 -- View this message in context: http://www.nabble.com/Col-Names-tp22952055p22952055.html Sent from the R help mailing list archive at Nabble.com. __ R-help@r-project.org mailing list 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.