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.

Reply via email to