The filter() function helps you pick only the rows you want from a table based on conditions. It makes your data smaller and focused.
filter() for row selection in R Programming
filter(data_frame, condition1, condition2, ...)data_frame is your table of data.
Conditions decide which rows to keep. Use logical operators like && (and), || (or), and comparison operators like ==, >, <.
filter(df, age > 30)
filter(df, city == "New York", score >= 90)
filter(df, gender == "female" | gender == "other")
This program creates a table of students with their age, city, and score. Then it uses filter() to pick only students older than 30. Finally, it prints those students.
library(dplyr) # Create a sample data frame students <- data.frame( name = c("Alice", "Bob", "Carol", "David"), age = c(25, 32, 28, 40), city = c("New York", "Chicago", "New York", "Boston"), score = c(88, 75, 92, 85) ) # Select students older than 30 older_students <- filter(students, age > 30) print(older_students)
Make sure to load the dplyr package before using filter().
Conditions inside filter() can be combined with commas (meaning AND) or logical operators.
If no rows match the condition, filter() returns an empty data frame.
filter() helps you pick rows from a table based on rules.
You can use one or more conditions to select exactly what you want.
Remember to load dplyr to use filter().
Practice
filter() function in R do when applied to a data frame?Solution
Step 1: Understand the purpose of
Thefilter()filter()function is used to pick rows from a data frame that satisfy certain conditions.Step 2: Compare with other functions
Functions likeselect()pick columns, andarrange()sorts rows, so they do not matchfilter()'s role.Final Answer:
Selects rows that meet specific conditions -> Option AQuick Check:
filter()= row selection [OK]
- Confusing filter() with select()
- Thinking filter() sorts data
- Assuming filter() adds columns
age is greater than 30 using dplyr?Solution
Step 1: Check the comparison operator
The correct operator for 'greater than' is >, soage > 30is valid.Step 2: Validate syntax correctness
filter(data, age > 30)correctly applies the condition insidefilter(). Other options use wrong operators or conditions.Final Answer:
filter(data, age > 30) -> Option BQuick Check:
Use > for greater than in filter() [OK]
- Using => instead of >
- Using = instead of == or >
- Confusing < with >
df below:df <- data.frame(name = c('Anna', 'Bob', 'Cara'), age = c(25, 35, 30))What will be the output of
filter(df, age >= 30)?Solution
Step 1: Identify rows where age >= 30
From the data, Bob has age 35 and Cara has age 30, both satisfy age >= 30.Step 2: Confirm which rows are selected
Anna has age 25, which is less than 30, so she is excluded.Final Answer:
Rows with Bob and Cara -> Option DQuick Check:
age >= 30 selects Bob and Cara [OK]
- Including rows with age less than 30
- Misreading >= as >
- Confusing row names with values
library(dplyr) df <- data.frame(score = c(80, 90, 70)) filtered <- filter(df, score => 80)
What is the problem with this code?
Solution
Step 1: Check the operator used in filter()
The operator => is not valid in R; the correct operator for 'greater or equal' is >=.Step 2: Validate other parts of the code
The data frame has the correct column, filter() can be used without pipe, and column names do not need quotes inside filter().Final Answer:
The operator => is invalid in R -> Option AQuick Check:
Use >=, not =>, for comparisons [OK]
- Using => instead of >=
- Thinking filter() always needs %>%
- Quoting column names inside filter()
df with columns city and temperature. You want to select rows where city is either 'Paris' or 'London' and temperature is above 20. Which filter() command correctly does this?Solution
Step 1: Understand operator precedence in R
Logical AND (&) has higher precedence than OR (|), so parentheses are needed to group city conditions.Step 2: Analyze each option's logic
filter(df, (city == 'Paris' | city == 'London') & temperature > 20) correctly groups city conditions with parentheses and then ANDs with temperature > 20. filter(df, city == 'Paris' | city == 'London' & temperature > 20) lacks parentheses, causing wrong logic. filter(df, city == 'Paris' & city == 'London' & temperature > 20) requires city to be both Paris and London simultaneously, impossible. filter(df, city == 'Paris' || city == 'London' && temperature > 20) uses || and && which are not vectorized and cause errors in filter().Final Answer:
filter(df, (city == 'Paris' | city == 'London') & temperature > 20) -> Option CQuick Check:
Use parentheses to group OR conditions in filter() [OK]
- Missing parentheses causing wrong logic
- Using && and || instead of & and |
- Trying city == 'Paris' & city == 'London' together
Ready to prove it?
Pass the test and this pattern moves unknown
