An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20140805/27105340/attachment.pl>
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:
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 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.
You can those vectors into character strings and pass them to table(). E.g.,
d <- 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), `130007`=c(1,0,1,0)) dChar <- vapply(d, FUN=function(di)paste(di, collapse=" "), FUN.VALUE="") dTable <- table(dChar) dTable
dChar
0 0 1 0 0 1 1 1 0 1 0
2 1 1 2
dTable["1 0 1 0"]
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:
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 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.
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:
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 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.
______________________________________________ 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:
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.Alspach at 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-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:
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 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.
______________________________________________ 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}} ______________________________________________ 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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20140805/db0bc963/attachment.pl>
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20140805/f0457791/attachment.pl>