[R] Dataframe manipulation

David Winsemius dwinsemius at comcast.net
Tue Dec 4 16:47:38 CET 2007


"Dimitris Rizopoulos" <dimitris.rizopoulos at med.kuleuven.be> wrote in
news:002001c8367f$65a8d8d0$0540210a at www.domain: 

> try this (also look at R-FAQ 7.10):
> 
> sapply(df, function (x) as.numeric(levels(x))[as.integer(x)])

That looks rather dangerous. By the time I saw your suggestion, I had 
already added an extra variable with:

df$testdata1<-as.numeric(levels(df$testdata))[as.integer(df$testdata)]
 
When I tried your suggestion I got no error, but there was also no 
effect. When I tried:

df2<-sapply(df, function (x) as.numeric(levels(x))[as.integer(x)])

I discovered that the numeric variable, testdata1, had been entirely 
coverted to NA's and str(df2) did not look data.frame-like. 

> is.data.frame(df2)
[1] FALSE

-- 
David Winsemius

> 
> ----- Original Message ----- 
> From: "Antje" <niederlein-rstat at yahoo.de>
> To: <r-help at stat.math.ethz.ch>
> Sent: Tuesday, December 04, 2007 11:46 AM
> Subject: [R] Dataframe manipulation
> 
> 
>> Hello,
>>
>> can anybody help me with this problem?
>> I have a dataframe, which contains its values as factors though I 
>> have numbers
>> but it was read as factors with "scan". Now I would like to convert 
>> these
>> columns (multiple) to a numeric format.
>>
>>
>> # this example creates a similar situation
>>
>> testdata <- as.factor(c("1.1",NA,"2.3","5.5"))
>> testdata2 <- as.factor(c("1.7","4.3","8.5",10.0))
>>
>> df <- data.frame(testdata, testdata2)
>>
>> what do I have to do to get the same datafram but with numeric 
>> values???
>>



More information about the R-help mailing list