[R] as.factor does not work inside function
Xiaobo Gu
guxiaobo1982 at gmail.com
Sun Dec 11 03:06:51 CET 2011
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