[R] unwanted coercion using apply

David Winsemius dwinsemius at comcast.net
Sun May 22 21:40:06 CEST 2011


On May 22, 2011, at 2:11 AM, Jeroen Ooms wrote:

> I need to convert a dataframe to a record-structure, to be able to  
> encode it
> later in JSON. Suppose this is the data:
>
> mydata <- data.frame(foo=1:3, bar=c("M","M","F"));
>
> I would like to convert this to a unnamed list (json array) of key- 
> value
> pairs. For example like this:
>
> apply(data.frame(foo=1:3, bar=c("M","M","F")),1,as.list)
>
> However, when I do this, all the numeric values are converted to  
> strings. I
> don't understand why this is, because when I try to convert one record
> simulataniously, this does not happen:
>
> as.list(mydata[1,]);
>
> I am not sure if this is indended behaviour or not, but is there an  
> elegant
> way to apply 'as.list' to all of the dataframe rows without coercing
> everything to strings?

?pairlist

pairlist( letters[1:3], 1:3)

pairlist(mydata$bar, ydata$foo)  # assuming the numbers were values  
for letter names.

-- 

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list