Hi all, I have the following reproducible example z<-c(-5:40) w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30) r<-z %in% w now r gives me the presence or absence of elements in z that are in w but I am interested in getting the number of times each element in z appears (or doesn't appear) in w. I want the dimension of my resulting vector to be the same as that of z. How do I do that? Thanks in advance Mintewab Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer [[alternative HTML version deleted]]
Thank you for the reproducible example, but your description is missing a clear
definition of what you want.
For example, if your desired output is
result <- c(rep(0,16),2,1,0,3,1,1,0,1,0,0,0,0,0,0,1,3,2,0,0,1,rep(0,10))
then one answer might be
as.vector(table(factor(w,levels=z)))
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live
Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.
M.Bezabih at lse.ac.uk wrote:> Hi all,
>I have the following reproducible example
>
>z<-c(-5:40)
>w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30)
> r<-z %in% w
>
>now r gives me the presence or absence of elements in z that are in w
>but I am interested in getting the number of times each element in z
>appears (or doesn't appear) in w. I want the dimension of my resulting
>vector to be the same as that of z. How do I do that?
>
> Thanks in advance
> Mintewab
>
>
>Please access the attached hyperlink for an important electronic
>communications disclaimer: http://lse.ac.uk/emailDisclaimer
> [[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.
Hi Mintewab,
With the IRanges packages (from Bioconductor):
> library(IRanges)
> countMatches(z, w)
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 3 1 1 0 1 0 0 0 0 0 0 1 3
2 0 0 1 0 0
[39] 0 0 0 0 0 0 0 0
To install the IRanges package:
source("http://bioconductor.org/biocLite.R")
biocLite("IRanges")
Cheers,
H.
On 01/23/2014 07:43 AM, M.Bezabih at lse.ac.uk wrote:> Hi all,
> I have the following reproducible example
>
> z<-c(-5:40)
> w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30)
> r<-z %in% w
>
> now r gives me the presence or absence of elements in z that are in w but I
am interested in getting the number of times each element in z appears (or
doesn't appear) in w. I want the dimension of my resulting vector to be the
same as that of z. How do I do that?
>
> Thanks in advance
> Mintewab
>
>
> Please access the attached hyperlink for an important electronic
communications disclaimer: http://lse.ac.uk/emailDisclaimer
> [[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.
>
--
Herv? Pag?s
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpages at fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
Here's a solution: # This gives a vector of counts (if z is a data frame, first convert it to a matrix) res = sapply(as.vector(z), function(x) sum(w==x)) # This copies the dimensions of the variable 'z' to 'res': dim(res) = dim(z) Peter On Thu, Jan 23, 2014 at 7:43 AM, <M.Bezabih at lse.ac.uk> wrote:> Hi all, > I have the following reproducible example > > z<-c(-5:40) > w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30) > r<-z %in% w > > now r gives me the presence or absence of elements in z that are in w but I am interested in getting the number of times each element in z appears (or doesn't appear) in w. I want the dimension of my resulting vector to be the same as that of z. How do I do that? > > Thanks in advance > Mintewab > > > Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer > [[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.