it needs a lappend function lappend <- function(lst, obj) { lst[[length(lst)+1]] <- obj return(lst) }
On Tue, Aug 5, 2014 at 10:59 PM, peter salzman <peter.salzmanu...@gmail.com> wrote: > hi, > > this may be overkill but i have a general function that tabulates lists of > anything. it works on vectors as in your example. > > the input is a list and the output is a list with 2 elements 1) list of > unique values and 2) a matching vector of counts. to that out[[1]][[k]] > occurs out[[2]][k] times. > > a warning: it runs through the list one by one so for long lists it may > take a long time > > cheers, > peter > > table.list <- function(my.list) { > n.elements <- length(my.list) > elements.counted <- rep(0,n.elements) > > val.now <- my.list[[1]] > elements.now <- sapply(my.list,function(x) {identical(val.now,x)}) > hist.val <- list(NULL,val.now) > hist.count <- c(0,sum(elements.now)) > elements.counted <- elements.counted + elements.now > n.elements.counted <- sum(elements.counted) > > while( n.elements.counted < n.elements) { > ind.now <- min(which(elements.counted == 0)) > val.now <- my.list[[ind.now]] > elements.now <- sapply(my.list,function(x) {identical(val.now,x)}) > hist.count <- c(hist.count,sum(elements.now)) > hist.val <- lappend(hist.val,val.now) > elements.counted <- elements.counted + elements.now > n.elements.counted <- sum(elements.counted) > } > hist.val[[1]] <- NULL > hist.count <- hist.count[-1] > return(list(hist.val,hist.count)) > > } ## function > > > > On Tue, Aug 5, 2014 at 1:39 PM, Marie-Pierre Sylvestre < > mp.sylves...@gmail.com> wrote: > >> Dear R users, >> >> I have a list of vectors (list is called HTNlist). Each vector is of >> length >> 1 to 4 and takes only 0 and 1 as values. E.g. >> >> head(HTNlist) >> $`30008` >> [1] 1 0 1 0 >> >> $`60008` >> [1] 0 0 1 0 >> >> $`90008` >> [1] 0 0 1 0 >> >> $`100007` >> [1] 1 >> >> $`130001` >> [1] 0 1 >> >> $`130007` >> [1] 1 0 1 0 >> >> I would like to obtain a frequency table for the elements of the list. I >> want to know how many of >> '1 0 0' I have in the list, how many '1 0 1 0' etc. >> >> Can you please help? >> >> Thank you in advance, >> MP >> >> [[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. >> > > > > -- > Peter Salzman, PhD > Department of Biostatistics and Computational Biology > University of Rochester > -- Peter Salzman, PhD Department of Biostatistics and Computational Biology University of Rochester [[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.