xtabs() produces a matrix with dimnames (actually a S3 class "table" object, whchi is an array of integers -- in this case, a 2-d arrray, i.e. a matrix). Spend some time with a basic R tutorial to learn how to index matrices/arrays. This should be part of your basic R skill set.

## Advertising

Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, May 17, 2018 at 7:15 PM, Val <valkr...@gmail.com> wrote: > Thank you Bert and Jim, > Jim, FYI , I have an error message generated as > > Error in allstates : object 'allstates' not found > > Bert, it is working. However, If I want to chose to include only mos years > example, 2003,2004,2007 and continue the analysis as before. Where should > I define the years to get as follow. > 2003 2004 2007 > AL 2 1 1 > NY 1 1 2 > > Thank you again. > > > > > > > > > On Thu, May 17, 2018 at 8:48 PM, Bert Gunter <bgunter.4...@gmail.com> > wrote: > >> ... and similar to Jim's suggestion but perhaps slightly simpler (or >> not!): >> >> > cross <- xtabs( Y ~ stat + year, data = tdat) >> > keep <- apply(cross, 1, all) >> > keep <- names(keep)[keep] >> > cross[keep,] >> year >> stat 2003 2004 2006 2007 2009 2010 >> AL 38 21 20 12 16 15 >> NY 50 51 57 98 183 230 >> >> >> >> > ## for counts just do: >> > xtabs( ~ stat + year, data = tdat[tdat$stat %in% keep, ]) >> year >> stat 2003 2004 2006 2007 2009 2010 >> AL 2 1 1 1 1 1 >> NY 1 1 1 2 2 3 >> >> Cheers, >> Bert >> >> Bert Gunter >> >> "The trouble with having an open mind is that people keep coming along >> and sticking things into it." >> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >> >> On Thu, May 17, 2018 at 5:48 PM, Val <valkr...@gmail.com> wrote: >> >>> Hi All, >>> >>> I have a sample of data set show as below. >>> tdat <- read.table(textConnection("stat year Y >>> AL 2003 25 >>> AL 2003 13 >>> AL 2004 21 >>> AL 2006 20 >>> AL 2007 12 >>> AL 2009 16 >>> AL 2010 15 >>> FL 2006 63 >>> FL 2007 14 >>> FL 2007 25 >>> FL 2009 64 >>> FL 2009 47 >>> FL 2010 48 >>> NY 2003 50 >>> NY 2004 51 >>> NY 2006 57 >>> NY 2007 62 >>> NY 2007 36 >>> NY 2009 87 >>> NY 2009 96 >>> <https://maps.google.com/?q=2009%C2%A0+%C2%A0+96+%0D%0ANY&entry=gmail&source=g> >>> NY 2010 91 >>> NY 2010 59 >>> NY 2010 80"),header = TRUE,stringsAsFactors=FALSE) >>> >>> There are three states, I wan tto select states taht do ahve records in >>> all >>> year. >>> Example, >>> xtabs(Y~stat+year, tdat) >>> This gave me the following >>> >>> stat 2003 2004 2006 2007 2009 2010 >>> AL 38 21 20 12 16 15 >>> FL 0 0 63 39 111 48 >>> NY 50 51 57 98 183 230 >>> >>> Fl state does not have recrods in all year and I wan to exclude from >>> this >>> and I want teh result as follow >>> >>> stat 2003 2004 2006 2007 2009 2010 >>> AL 38 21 20 12 16 15 >>> NY 50 51 57 98 183 230 >>> >>> The other thing, how do I get teh counts state by year? >>> >>> Desired result, >>> >>> 2003 2004 2006 2007 2009 2010 >>> AL 2 1 1 1 1 1 >>> NY 1 1 1 2 2 3 >>> >>> Thank you >>> >>> [[alternative HTML version deleted]] >>> >>> ______________________________________________ >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide http://www.R-project.org/posti >>> ng-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> >> > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.