apply transorm your data.frame into a matrix which can contains only one type of values (character or numeric or logical). data.frame are list, so they can contain various kind of data, and a solution to your problem is given by lapply:
> b=lapply(df, function(r) print(class(r['a']))) [1] "numeric" [1] "factor" >Numeric data that is part of a mixed type data frame is converted into >character. How can I tell apply to maintain the original class of a >column and not convert it into character. I would like to do this of >the vector and not inside the apply function individually over each >element. Consider the following two scenarios, in the second column >'a' maintained its class while it lost its numeric type in the first >case. > > > >>df = data.frame(a=c(1,2), b=c('A','B')) >>df >> >> > a b >1 1 A >2 2 B > > >>a=apply(df, 1, function(r) print(class(r['a']))) >> >> >[1] "character" >[1] "character" > > >>a=apply(df, 1, function(r) print(class(r['b']))) >> >> >[1] "character" >[1] "character" > > > > >>df = data.frame(a=c(1,2)) >>df >> >> > a >1 1 >2 2 > > >>a=apply(df, 1, function(r) print(class(r['a']))) >> >> >[1] "numeric" >[1] "numeric" > >______________________________________________ >R-help@stat.math.ethz.ch mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > > > > -- Stéphane DRAY ([EMAIL PROTECTED] ) Laboratoire BBE-CNRS-UMR-5558, Univ. C. Bernard - Lyon I 43, Bd du 11 Novembre 1918, 69622 Villeurbanne Cedex, France Tel: 33 4 72 43 27 57 Fax: 33 4 72 43 13 88 http://www.steph280.freesurf.fr/ ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html