[R] Extract only the values from a row

Sverre Stausland johnsen at fas.harvard.edu
Mon Jul 11 22:07:04 CEST 2011


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.goslee at gmail.com> wrote:
> Hi Sverre,
>
> On Mon, Jul 11, 2011 at 12:48 PM, Sverre Stausland
> <johnsen at 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
>
>



More information about the R-help mailing list