[R] Remove non-numerical columns from data frame

Peter Dalgaard p.dalgaard at biostat.ku.dk
Sat Jul 26 18:35:22 CEST 2008


Henrique Dallazuanna wrote:
> Try this:
>
> x <- data.frame(A=c(10,20), B = c("a", "b"), C = c(20,30))
> x[sapply(x, is.numeric)]
>
>   
Yes, and read ?Extract to clear up the confusion between data$vol and 
data[257] and data[[257]] (Section on "Recursive (list-like) objects:"). 
Also, ?Extract.data.frame.

> On Sat, Jul 26, 2008 at 11:19 AM, Markus Mühlbacher <muehliman at yahoo.com> wrote:
>   
>> Hello,
>>
>> My question sounds simple, but as I am desperatly searchin for a solution I am
>> asking you all. :)
>>
>> I try to filter out all non-numeric columns of a data frame using a for loop
>> to go through all columns. My if clause looks like this:
>>
>>         for(j in 1:length(data)) {
>>
>>                 ...
>>                 if(!is.numeric(data[j])) skip <- "not numeric")
>>                 ...
>>         }
>>
>> When I do: is.numeric(data$vol) i get TRUE as result:
>> unfortunately this is not applicable in a for loop, because i need to go
>> through all of the columns using j.
>> I also tried to paste data$ and the name of the column , but this is always a
>> character.
>>
>> When I do: is.numeric(data[257]) i get FALSE as result
>> (257 is the corresponding column index to "vol")
>>     
>


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907



More information about the R-help mailing list