📖 Scenario: You have a small table of fruits with their prices and quantities. You want to find only the fruits that cost more than 2 dollars.
🎯 Goal: Build a program that creates a data frame of fruits, sets a price limit, filters the fruits that cost more than that limit, and prints the filtered data.
📋 What You'll Learn
Create a data frame called fruits with columns name, price, and quantity
Create a variable called price_limit and set it to 2
Filter the fruits data frame to keep only rows where price is greater than price_limit and save it as expensive_fruits
Print the expensive_fruits data frame
💡 Why This Matters
🌍 Real World
Filtering data tables is common when you want to focus on important or relevant information, like finding expensive products in a store.
💼 Career
Data filtering is a key skill in data analysis, reporting, and preparing data for decision making in many jobs.
Progress0 / 4 steps
1
Create the fruits data frame
Create a data frame called fruits with these exact entries: name as c("Apple", "Banana", "Cherry", "Date"), price as c(1.5, 0.5, 3.0, 2.5), and quantity as c(10, 20, 15, 5).
R Programming
Hint
Use the data.frame() function with named vectors for each column.
2
Set the price limit
Create a variable called price_limit and set it to 2.
R Programming
Hint
Just assign the number 2 to the variable price_limit.
3
Filter the fruits by price
Create a new data frame called expensive_fruits that contains only the rows from fruits where the price is greater than price_limit.
R Programming
Hint
Use the square bracket notation with a condition on fruits$price.
4
Print the filtered fruits
Write a print() statement to display the expensive_fruits data frame.
R Programming
Hint
Use print(expensive_fruits) to show the filtered table.
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
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().
Final Answer:
It selects rows based on a condition. -> Option D
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
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.
Final Answer:
subset(df, age > 30) -> Option A
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
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.
Final Answer:
Rows with Bob and Cara -> Option A
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
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'.
Final Answer:
The condition ends with an incomplete operator '&'. -> Option B
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 andstatus 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
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.
Final Answer:
subset(df, age > 25 & status == 'active') -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.