Remove Rows From Data Frame where a Row matches a String

Viewed 238400

I do I remove all rows in a dataframe where a certain row meets a string match criteria?

For example:

A,B,C
4,3,Foo
2,3,Bar
7,5,Zap

How would I return a dataframe that excludes all rows where C = Foo:

A,B,C
2,3,Bar
7,5,Zap
6 Answers

You can use the dplyr package to easily remove those particular rows.

library(dplyr)
df <- filter(df, C != "Foo")

if you wish to using dplyr, for to remove row "Foo":

df %>%
 filter(!C=="Foo")

I know this has been answered but here is another option:

library (dplyr)
df %>% filter(!c=="foo)
OR
df[!df$c=="foo", ]

If your exclusion conditions are stored in another data frame you could use rows_delete:

library(dplyr)

removal_df <- data.frame(C = "Foo")

df %>% 
  rows_delete(removal_df, by = "C")

  A B   C
1 2 3 Bar
2 7 5 Zap

This is also handy if you have multiple exclusion conditions so you do not have to write out a long filter statement.

Note: rows_delete is only available if you have dplyr >= 1.0.0

Related