What you are probably looking for is the %in% operator: with(mydata, sum(table(X1[X2 %in% 5:8])))
Read up on how operations are vectorized and how variables are recycled if not long enough > x <- 1:10 > x == 1:2 # compares first two fine [1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > x == 1:3 # same for the first 3 [1] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > x == 4:6 # this is 4 5 6 4 5 6 which just happens to compare with 4 5 6 in x [1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE > x == 2:5 # notice that this fail [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE > x %in% c(8,2,7,3) # order not important [1] FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE On Fri, May 27, 2011 at 7:10 AM, Chris Beeley <chris.bee...@gmail.com> wrote: > Hello- > > I have some code that looks like this: > > with(mydatalocal, sum(table(Service[Time==5:8]))) > > This is designed to add up the numbers of responses between the Time > codes 5 to 8 (which are integers and refer to quarters). Service is > just one of the variables, I'm just trying to count the number of > responses so I picked any of the variables. However, there is > something wrong, it returns far too low a number for the number of > responses. Indeed, if I run this: > > with(mydatalocal, sum(table(Service[Time==5|Time==6|Time==7|Time==8]))) > > I get 4 times as many responses. > > I've tried to recreate the problem with the following code: > > mydata=data.frame(matrix(c(rep(1, 10), rep(2, 10), rep(3, 10), seq(1, > 10, 1), seq(11, 20, 1), seq(21, 30, 1)), ncol=2)) > > with(mydata, sum(table(X1[X2==9:12]))) > > with(mydata, sum(table(X1[X2==9|X2==10|X2==11|X2==12]))) > > but to my immense frustration it actually seems to work fine there, > the same number, 4, both times. However, it does generate the > following error message: > > In X2 == 9:12 : > longer object length is not a multiple of shorter object length > > I know I can use X1[ Time < 9 & Time > 3] but I would like to know > what is wrong with the 5:8 usage in case I put it somewhere else and > don't notice the problem. > > Many thanks! > > Chris Beeley > Institute of Mental Health > > ______________________________________________ > 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. > -- Jim Holtman Data Munger Guru What is the problem that you are trying to solve? ______________________________________________ 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.