[R] subsetting dataframe multiple conditions

Sarah Goslee sarah.goslee at gmail.com
Thu May 9 21:44:02 CEST 2013


Hi,

On Thu, May 9, 2013 at 12:28 PM, KatrinH Heimann
<katrinheimann at gmail.com> wrote:
> Dear all,
> I would like to subset a dataframe using multiple conditions.
> So if I have two columns 1 and 2, I would like to EXCLUDE all rows in which
> the value of column 1 is "a" AND the value of column 2 is "b".
> I tried data[(data$column1 != "a" & data$column2 != "b"),] but that deletes
> me every row in which either 1 is "a" or 2 is "b".

Close: you have the negation in the wrong place:


> fakedata <- data.frame(x1 = sample(letters[1:3], 10, replace=TRUE), x2 = sample(letters[1:3], 10, replace=TRUE), stringsAsFactors=FALSE)
> fakedata
   x1 x2
1   c  c
2   a  b
3   a  a
4   c  a
5   c  a
6   c  a
7   a  b
8   c  c
9   b  a
10  c  a
> subset(fakedata, !(x1 == "a" & x2 == "b"))
   x1 x2
1   c  c
3   a  a
4   c  a
5   c  a
6   c  a
8   c  c
9   b  a
10  c  a


-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list