A Singh
2009-Nov-16 12:42 UTC
[R] lapply() not converting columns to factors (no error message)
Dear List, I'm having a curious problem with lapply(). I've used it before to convert a subset of columns in my dataframe, to factors, and its worked. But now, on re-running the identical code as before it just doesn't convert the columns into factors at all. As far as I can see I've done nothing different, and its strange that it shouldn't do the action. Has anybody come across this before? Any input on this strange issue much appreciated.. Hope I haven't missed something obvious. Thanks a lot, Aditi (P.s.- I've tried converting columns one by one to factors this time, and that works.>P1L55<-factor(P1L55) >levels(P1L55) >[1] "0" "1"Code: prm<-read.table("P:\\..... .csv", header=T, ...sep=",", ...) prmdf<-data.frame(prm) prmdf[2:13]<-lapply(prmdf[2:13], factor) ## action performed, no error message ##I tried to pick random columns and check>levels(P1L55) >NULL>is.factor(P1L96) >FALSE---------------------- A Singh Aditi.Singh at bristol.ac.uk School of Biological Sciences University of Bristol
A Singh
2009-Nov-16 12:50 UTC
[R] lapply() not converting columns to factors (no error message)
Sorry, my file is at: http://www.4shared.com/file/153147281/a5c78386/Testvcomp10.html ---------------------- A Singh Aditi.Singh at bristol.ac.uk School of Biological Sciences University of Bristol
Sundar Dorai-Raj
2009-Nov-16 12:59 UTC
[R] lapply() not converting columns to factors (no error message)
Works for me:
x <-
read.csv(url("http://dc170.4shared.com/download/153147281/a5c78386/Testvcomp10.csv?tsid=20091116-075223-c3093ab0"))
names(x)
x[2:13] <- lapply(x[2:13], factor)
> levels(x$P1L55)
[1] "0" "1"> is.factor(x$P1L96)
[1] TRUE
> sessionInfo()
R version 2.10.0 (2009-10-26)
i386-apple-darwin9.8.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lattice_0.17-26
loaded via a namespace (and not attached):
[1] grid_2.10.0 tools_2.10.0
On Mon, Nov 16, 2009 at 4:50 AM, A Singh <Aditi.Singh at bristol.ac.uk>
wrote:> Sorry, my file is at:
>
>
> http://www.4shared.com/file/153147281/a5c78386/Testvcomp10.html
>
>
> ----------------------
> A Singh
> Aditi.Singh at bristol.ac.uk
> School of Biological Sciences
> University of Bristol
>
> ______________________________________________
> R-help at 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.
>
Peter Dalgaard
2009-Nov-16 14:30 UTC
[R] lapply() not converting columns to factors (no error message)
A Singh wrote:> Dear List, > > I'm having a curious problem with lapply(). I've used it before to > convert a subset of columns in my dataframe, to factors, and its worked. > But now, on re-running the identical code as before it just doesn't > convert the columns into factors at all. > > As far as I can see I've done nothing different, and its strange that it > shouldn't do the action. > > Has anybody come across this before? Any input on this strange issue > much appreciated.. > > Hope I haven't missed something obvious. > > Thanks a lot, > > Aditi > > (P.s.- I've tried converting columns one by one to factors this time, > and that works. > >> P1L55<-factor(P1L55) >> levels(P1L55) >> [1] "0" "1" > > Code: > > prm<-read.table("P:\\..... .csv", header=T, ...sep=",", ...) > > prmdf<-data.frame(prm) > > prmdf[2:13]<-lapply(prmdf[2:13], factor) ## action performed, no error > message > > ##I tried to pick random columns and check > >> levels(P1L55) >> NULL > >> is.factor(P1L96) >> FALSEMake sure that you are looking in the same object that you changed. E.g. attach(prmdf) prmdf[2:13]<-lapply(prmdf[2:13], factor) levels(P1L55) is not going to work levels(prmdf$P1L55) should, or attaching _after_ the change. Also, make sure that you don't have P1L55 et al. sitting in the global enviromnent. -- O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
Possibly Parallel Threads
- Error: length(f1) == length(f2) is not TRUE
- Differing Variable Length Inconsistencies in Random Effects/Regression Models
- Splitting massive output into multiple text files
- Error: length(f1) == length(f2) is not TRUE (fwd)
- How to block data across multiple columns?