Great - thanks for the explanation and for the solution using stringsAsFactors=FALSE in the data.frame function
Sverre On Mon, Jul 11, 2011 at 3:57 PM, Sarah Goslee <sarah.gos...@gmail.com> wrote: > Hi Sverre, > > On Mon, Jul 11, 2011 at 12:48 PM, Sverre Stausland > <john...@fas.harvard.edu> wrote: >> Dear helpers, >> >> how can I extract only the values from a row in a data frame? Using >> [X,] doesn't do the trick: >> >>> data.frame(letters[1:10],letters[11:20])->my.data >>> my.data[1,] >> letters.1.10. letters.11.20. >> 1 a k >> >> I would like to be able to extract only the values "a" and "k" without >> getting the row names and column names with them. I'm asking because I >> want to assign the character values from a row as the names of the >> columns of the data frame. > > You're confusing display with value. R extracts the first row only, > but when it is *printed to the screen* it has all the other parts > shown to help the viewer. They aren't really part of the value > extracted. > > But I bet you tried it before asking, and it didn't work, so you > assumed it was the display values that messed up your attempt. I think > you've actually run into R's default behavior: character columns are > stored as factors unless you specify otherwise. > > So try this: >> my.data <- data.frame(letters[1:10],letters[11:20], stringsAsFactors=FALSE) >> my.other.data <- data.frame(1:5, 1:5) >> colnames(my.other.data) <- my.data[1,] >> my.other.data > a k > 1 1 1 > 2 2 2 > 3 3 3 > 4 4 4 > 5 5 5 > > Sarah > > > -- > Sarah Goslee > http://www.functionaldiversity.org > > ______________________________________________ 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.