Bird
Raised Fist0
R Programmingprogramming~5 mins

Filtering rows in R Programming - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Filtering rows
O(n)
Understanding Time Complexity

When we filter rows in a data table, we want to know how the time to do this changes as the table gets bigger.

We ask: How does the work grow when there are more rows to check?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


# Filter rows where value is greater than 10
filtered_data <- data[data$value > 10, ]

This code checks each row in the data frame and keeps only those with a value greater than 10.

Identify Repeating Operations
  • Primary operation: Checking each row's value to see if it is greater than 10.
  • How many times: Once for every row in the data frame.
How Execution Grows With Input

As the number of rows grows, the number of checks grows the same way.

Input Size (n)Approx. Operations
1010 checks
100100 checks
10001000 checks

Pattern observation: The work grows directly with the number of rows; doubling rows doubles the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to filter grows in a straight line with the number of rows.

Common Mistake

[X] Wrong: "Filtering only a few rows means the operation is very fast no matter the data size."

[OK] Correct: Even if few rows match, the code still checks every row once, so time depends on total rows.

Interview Connect

Understanding how filtering scales helps you write efficient data code and explain your choices clearly.

Self-Check

"What if we used a pre-sorted data frame and stopped checking once values were too small? How would the time complexity change?"

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