Gregor Gorjanc <gregor.gorjanc <at> bfro.uni-lj.si> writes: > > Hello! > > Data.frames have new rownames funcionality, however in use of colnames<- > in R-devel "changes" this. Here is the example: > > > df1 <- data.frame(letters[1:5]) > > attributes(df1) > $names > [1] "letters.1.5." > > $row.names > [1] 1 2 3 4 5 > > $class > [1] "data.frame" > > > colnames(df1) <- "bla" > > attributes(df1) > $names > [1] "bla" > > $row.names > [1] "1" "2" "3" "4" "5" > > $class > [1] "data.frame" > > ?rownames/colnames help page (R-devel) says that value is coerced to > character, but why are rownames coerced to character if I assign > colnames to a data.frame? >
because colnames() and rownames() work via dimnames(), and so do "colnames<-" and "rownames<-" --- I think it would be unwise to change this, since it's well documented property of these functions. As you noted yourself, using names() and "names<-" i.e., names(df1) <- "bla" in the example above, is the recommended way for data frames and does not change the rownames to character. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel