[R] cannot turn some columns in a data frame into factors

Sam Steingold sds at podval.org
Thu May 11 18:09:26 CEST 2006


Hi,
I have a data frame df and a list of names of columns that I want to
turn into factors:

  df.names <- attr(df,"names")
  sapply(factors, function (name) {
    pos <- match(name,df.names)
    if (is.na(pos)) stop(paste(name,": no such column\n"))
    df[[pos]] <- factor(df[[pos]])
    cat(name,"(",pos,"):",is.factor(df[[pos]]),"\n")
  })
  cat("factors:",sapply(df,is.factor),"\n")

the output is:


Month ( 1 ): TRUE 
factors: FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 


i.e., there is a column named "Month" (the 1st column), and it is indeed
turned into a factor inside sapply(), but after that it is numerical
again!

what am I doing wrong?

-- 
Sam Steingold (http://www.podval.org/~sds) on Fedora Core release 5 (Bordeaux)
http://honestreporting.com http://truepeace.org http://openvotingconsortium.org
http://thereligionofpeace.com http://memri.org http://palestinefacts.org
UNIX, car: hard to learn/easy to use; Windows, bike: hard to learn/hard to use.




More information about the R-help mailing list