[R] as.factor does not work inside function
Xiaobo Gu
guxiaobo1982 at gmail.com
Sun Dec 11 03:08:14 CET 2011
I am sorry, it is
for(col in c("x","y")){df[[col]] <- as.factor(df[[col]])}
is.factor(df[["x]])
TRUE
On Sun, Dec 11, 2011 at 10:06 AM, Xiaobo Gu <guxiaobo1982 at gmail.com> wrote:
> Hi,
>
> I am trying to write a function do cast columns of data frame as
> factor in a loop, the source is :
>
>
> as.factor.loop <- function(df, cols){
>
> if (!is.null(df) && !is.null(cols) && length(cols) > 0)
> {
> for(col in cols)
> {
> df[[col]] <- as.factor(df[[col]])
> }
> }
> }
>
>
> source('D:/ambertuil.r')
> x <- 1:5
> y <- 2:6
> df <- data.frame(x=x, y=y)
> as.factor.loop(df, c("x"))
>
> But after the function call, the df data frame does not change,
> because
>
> is.factor(df[["x]])
> FALSE
>
> But if I call this in R console directlly, it works
>
> for(col in c("x","y")){df[[col]] <- as.factor(df[[col]])}
>
>
>
> is.factor(df[["x]])
> FALSE
>
>
> Regards,
>
> Xiaobo Gu
More information about the R-help
mailing list