Bird
Raised Fist0
R Programmingprogramming~20 mins

Filtering rows in R Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Filtering Rows Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of filtering rows with dplyr filter()
What is the output of this R code that filters rows where score is greater than 80?
R Programming
library(dplyr)
data <- data.frame(name = c("Anna", "Ben", "Cara", "Dan"), score = c(75, 85, 90, 60))
filtered <- filter(data, score > 80)
print(filtered)
AError: object 'filter' not found
B
  name score
1  Anna    75
2  Ben    85
3 Cara    90
4  Dan    60
C
  name score
1  Anna    75
2  Dan    60
D
  name score
1  Ben    85
2 Cara    90
Attempts:
2 left
💡 Hint
Look for rows where score is more than 80.
❓ Predict Output
intermediate
2:00remaining
Filtering rows with base R subset()
What will this R code print after filtering rows where age is less than or equal to 30?
R Programming
data <- data.frame(name = c("Eva", "Frank", "Gina", "Hank"), age = c(25, 35, 30, 40))
result <- subset(data, age <= 30)
print(result)
A
  name age
1  Eva  25
3 Gina  30
B
  name age
2 Frank 35
4 Hank  40
CError in subset(data, age <= 30): object 'age' not found
D
  name age
1  Eva  25
2 Frank 35
3 Gina  30
4 Hank  40
Attempts:
2 left
💡 Hint
subset() keeps rows where the condition is TRUE.
❓ Predict Output
advanced
2:00remaining
Filtering rows with multiple conditions
What is the output of this R code filtering rows where score is above 70 and grade is 'A'?
R Programming
library(dplyr)
data <- data.frame(name = c("Ivy", "Jack", "Kara", "Liam"), score = c(80, 90, 65, 85), grade = c("B", "A", "A", "A"))
filtered <- filter(data, score > 70 & grade == "A")
print(filtered)
A
  name score grade
1 Jack    90     A
2 Liam    85     A
B
  name score grade
1 Ivy     80     B
2 Jack    90     A
3 Liam    85     A
C
  name score grade
1 Kara    65     A
D
  name score grade
1 Ivy     80     B
Attempts:
2 left
💡 Hint
Both conditions score > 70 and grade == 'A' must be true.
❓ Predict Output
advanced
2:00remaining
Filtering rows with NA values
What will this R code print after filtering rows where value is not NA?
R Programming
data <- data.frame(id = 1:5, value = c(10, NA, 20, NA, 30))
filtered <- subset(data, !is.na(value))
print(filtered)
A
  id value
2  2    NA
4  4    NA
B
  id value
1  1    10
2  2    NA
3  3    20
4  4    NA
5  5    30
C
  id value
1  1    10
3  3    20
5  5    30
DError in subset(data, !is.na(value)): object 'value' not found
Attempts:
2 left
💡 Hint
Use !is.na() to keep rows without missing values.
❓ Predict Output
expert
3:00remaining
Filtering rows with complex condition and mutate
What is the output of this R code that filters rows where new_score is above 50 after mutation?
R Programming
library(dplyr)
library(magrittr)
data <- data.frame(name = c("Mia", "Ned", "Oli", "Pam"), score = c(40, 60, 55, 45))
result <- data %>% mutate(new_score = score * 1.2) %>% filter(new_score > 50)
print(result)
A
  name score new_score
1  Mia    40        48
2  Ned    60        72
3  Oli    55        66
4  Pam    45        54
B
  name score new_score
1  Ned    60        72
2  Oli    55        66
C
  name score new_score
1  Mia    40        48
4  Pam    45        54
DError: could not find function "%>%"
Attempts:
2 left
💡 Hint
First multiply score by 1.2, then keep rows where new_score > 50.

Practice

(1/5)
1. What does the subset() function do in R when working with data frames?
easy
A. It sorts the data frame by a column.
B. It changes the column names.
C. It adds new columns to the data frame.
D. It selects rows based on a condition.

Solution

  1. Step 1: Understand the purpose of subset() and compare with other options

    The subset() function is used to pick rows from a data frame that meet a specific condition. Changing column names, adding columns, or sorting are done by other functions, not subset().
  2. Final Answer:

    It selects rows based on a condition. -> Option D
  3. Quick Check:

    subset() filters rows [OK]
Hint: Remember: subset() picks rows that match conditions [OK]
Common Mistakes:
  • Thinking subset() changes columns
  • Confusing subset() with sorting functions
  • Using subset() to add data
2. Which of the following is the correct syntax to filter rows where column age is greater than 30 in a data frame df?
easy
A. subset(df, age > 30)
B. subset(df, age => 30)
C. subset(df, age = 30)
D. subset(df, age < 30)

Solution

  1. Step 1: Check the condition syntax and validate the subset syntax

    The correct comparison operator for 'greater than' is >, so age > 30 is correct. subset(df, age > 30) correctly filters rows where age is greater than 30.
  2. Final Answer:

    subset(df, age > 30) -> Option A
  3. Quick Check:

    Use > for greater than in subset() [OK]
Hint: Use >, <, == for conditions inside subset() [OK]
Common Mistakes:
  • Using => instead of >
  • Using = instead of == or >
  • Filtering with wrong comparison signs
3. Given the data frame df <- data.frame(name=c('Anna','Bob','Cara'), age=c(25, 35, 30)), what is the output of subset(df, age >= 30)?
medium
A. Rows with Bob and Cara
B. All rows
C. Rows with Anna and Bob
D. Rows with Anna and Cara

Solution

  1. Step 1: Identify rows where age >= 30 and check which are selected

    Bob has age 35 and Cara has age 30, both satisfy age >= 30. Anna has age 25, which does not meet the condition, so only Bob and Cara rows remain.
  2. Final Answer:

    Rows with Bob and Cara -> Option A
  3. Quick Check:

    Filter keeps rows with age 30 or more [OK]
Hint: Check each row's value against condition carefully [OK]
Common Mistakes:
  • Including rows with age less than 30
  • Confusing >= with >
  • Assuming all rows are returned
4. What is wrong with this code to filter rows where score is less than 50 in data frame df?
subset(df, score < 50 &)
medium
A. The subset function cannot filter numeric columns.
B. The condition ends with an incomplete operator '&'.
C. The comparison operator '<' is invalid in subset.
D. The data frame name is missing.

Solution

  1. Step 1: Analyze the condition syntax and check other options

    The condition ends with '&' which expects another condition after it, but none is provided. Subset can filter numeric columns, '<' is valid, and data frame name is present as 'df'.
  2. Final Answer:

    The condition ends with an incomplete operator '&'. -> Option B
  3. Quick Check:

    Conditions must be complete without dangling operators [OK]
Hint: Avoid ending conditions with & or | without second part [OK]
Common Mistakes:
  • Leaving dangling & or | operators
  • Thinking subset can't filter numbers
  • Misusing comparison operators
5. You have a data frame df with columns age and status. How do you filter rows where age is over 25 and status is 'active'?
hard
A. subset(df, age > 25, status == 'active')
B. subset(df, age > 25 | status == 'active')
C. subset(df, age > 25 & status == 'active')
D. subset(df, age > 25 && status = 'active')

Solution

  1. Step 1: Use correct logical operator for AND and check comparison operators and syntax

    The operator for AND in R is a single ampersand '&', so use age > 25 & status == 'active'. Use '==' to compare values, not '=', and combine conditions inside one subset call.
  2. Final Answer:

    subset(df, age > 25 & status == 'active') -> Option C
  3. Quick Check:

    Use & and == for combined conditions [OK]
Hint: Use & for AND, | for OR, and == for equality in subset() [OK]
Common Mistakes:
  • Using | instead of & for AND
  • Using = instead of == for comparison
  • Separating conditions with commas
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard