Skip to content

Frequencies for a list of vectors

7 messages · Marie-Pierre Sylvestre, Rui Barradas, William Dunlap +2 more

#
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:
#
You can those vectors into character strings and pass them to table().  E.g.,
dChar
0 0 1 0     0 1       1 1 0 1 0
      2       1       1       2
1 0 1 0
      2

Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Tue, Aug 5, 2014 at 10:39 AM, Marie-Pierre Sylvestre
<mp.sylvestre at gmail.com> 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-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Rui Barradas
Sent: Wednesday, 6 August 2014 8:49 a.m.
To: Marie-Pierre Sylvestre; r-help at 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:
______________________________________________
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.
The contents of this e-mail are confidential and may be ...{{dropped:14}}
#
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:
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 "
$`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 "
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.Alspach at plantandfood.co.nz> wrote: