Try this:

dat <- data.frame(x = gl(4, 5), y = gl(5, 4), z = rnorm(20))
res <- dat[sapply(dat, is.factor)]


On Thu, Apr 24, 2008 at 9:14 AM, Serge Merzliakov <[EMAIL PROTECTED]>
wrote:

> Hi All,
>    I have attempted to extract only the factor columns from  an
> existing data set inside a loop without success . I tried the transform
> function which worked, but not inside the loop (attempts with cbind did
> not work either - inside a loop). Here is my function:
>
> getcatcolumns<-function(x)
> {
>    # ignore type checking for data frames etc
>     res <- data.frame()
>     for(i in 1:length(x))
>     {
>        if (class(x[,i]) =="factor") res <- transform(res, colname =
> x[,i])  # append the factor column to the new data frame (res)
>     }
>   return(res)
> }
>
> The error I get is: "arguments imply differing number of rows: 0, 5000"
>
> All help appreciated.
>
> Regards,
>  Serge Merzliakov
>
> ______________________________________________
> 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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

        [[alternative HTML version deleted]]

______________________________________________
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