Using vapply instead of sapply or unlist(lapply) here gives you a little more safety. vapply insists that you supply a FUN.VALUE argument that gives a prototype (type and length) of the expected output of FUN. It will stop if FUN returns something unexpected. Compare the following where I misspelled 'collapse'; only vapply catches the error:
> marieData <- list('30008'=c(1,0,1,0), '60008'=c(0,0,1,0), '90008'=c(0,0,1,0), > '100007'=1, '130001'=c(0,1)) > unlist(lapply(marieData, paste, collaps='')) 300081 300082 300083 300084 600081 600082 600083 600084 900081 900082 "1 " "0 " "1 " "0 " "0 " "0 " "1 " "0 " "0 " "0 " 900083 900084 100007 1300011 1300012 "1 " "0 " "1 " "0 " "1 " > sapply(marieData, paste, collaps='') $`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 " > vapply(marieData, paste, collaps='', FUN.VALUE='') Error in vapply(marieData, paste, collaps = "", FUN.VALUE = "") : values must be length 1, but FUN(X[[1]]) result is length 4 vapply(X,FUN,FUN.VALUE) also gives you a better result when length(X) is 0, meaning that you don't have to write special code to catch that case. Bill Dunlap TIBCO Software wdunlap tibco.com On Tue, Aug 5, 2014 at 1:53 PM, Peter Alspach <peter.alsp...@plantandfood.co.nz> wrote: > Alternatively, use sapply instead of lapply .... > > marieData <- list('30008'=c(1,0,1,0), '60008'=c(0,0,1,0), '90008'=c(0,0,1,0), > '100007'=1, '130001'=c(0,1)) > marieData > $`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 > > table(sapply(marieData, paste, collapse='')) > > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Rui Barradas > Sent: Wednesday, 6 August 2014 8:49 a.m. > To: Marie-Pierre Sylvestre; r-help@r-project.org > Subject: Re: [R] Frequencies for a list of vectors > > Hello, > > Maybe something like > > table(unlist(lapply(HTNlist, paste, collapse = ''))) > > > (Untested, it's a bad idea not to use ?dput to give a data example.) Use > > dput(head(HTNlist)) # paste the output of this in a mail > > > Hope this helps, > > Rui Barradas > > > Em 05-08-2014 18:39, Marie-Pierre Sylvestre escreveu: >> 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. >> > > ______________________________________________ > 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. > The contents of this e-mail are confidential and may be ...{{dropped:14}} > > ______________________________________________ > 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. ______________________________________________ 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.