But be careful because class is a character vector (not necessarily a character vector of length 1)
On Fri, Dec 30, 2011 at 10:21 AM, Justin Haynes <jto...@gmail.com> wrote: > there is also colwise in the plyr package. > >> library(plyr) >> colwise(class)(data6) > v13 v14 v15 f4 v16 > 1 integer numeric character factor logical > > > Justin > > > On Thu, Dec 29, 2011 at 4:47 PM, Jean V Adams <jvad...@usgs.gov> wrote: > >> Dan Abner wrote on 12/29/2011 06:13:11 PM: >> >> > Hi everyone, >> > >> > I am attempting to use the apply() function to obtain the mode and class >> of >> > each column in a data frame, however, I am encountering unexpected >> results. >> > I have the following example data: >> > >> > >> > v13<-1:6 >> > v14<-c(1,2,3,3,NA,1) >> > v15<-c("Good","Bad",NA,"Good","Bad","Bad") >> > f4<-factor(rep(c("Blue","Red","Green"),2)) >> > v16<-c(F,T,F,F,T,F) >> > data6<-data.frame(v13,v14,v15,f4,v16) >> > data6 >> > >> > >> > Here is my function definition: >> > >> > >> > contents<-function(x){ >> > output<-data.frame(Varnum=1:ncol(x), >> > Name=names(x), >> > Mode=apply(x,2,mode), >> > Class=apply(x,2,class)) >> > print(output) >> > } >> >> >> Use sapply() instead of apply(). In the help file for apply() it says: " >> If X is not an array but an object of a class with a non-null dim value >> (such as a data frame), apply attempts to coerce it to an array via >> as.matrix if it is two-dimensional (e.g., a data frame) or via as.array." >> This coercion to a matrix might be causing the unexpected result. sapply() >> and lapply() are designed specifically for lists (which a data frame is). >> I also simplified the function a bit ... >> >> contents<-function(x){ >> data.frame(Varnum=1:ncol(x), Name=names(x), >> Mode=sapply(x,mode), Class=sapply(x,class)) >> } >> >> Jean >> >> >> > ==== >> > >> > When I call the function, I obtain the following: >> > >> > >> > > contents(data6) >> > Varnum Name Mode Class >> > v13 1 v13 character character >> > v14 2 v14 character character >> > v15 3 v15 character character >> > f4 4 f4 character character >> > v16 5 v16 character character >> > >> > ===== >> > >> > Any help is appreciated. >> > >> > Thank you, >> > >> > Dan >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-help@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. >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@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. >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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. -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/ ______________________________________________ R-help@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.