Have you ever wondered how to make your R code more dynamic and responsive? How can you control the flow of your program based on certain conditions? The answer lies in the powerful if-else statement in the R programming language. With this versatile tool, you can make efficient decisions in your code that adapt to different scenarios.
In this comprehensive guide, we will unravel the mysteries of the R if-else statement. From understanding its syntax and functionality to exploring advanced concepts and practical applications, you will gain the knowledge and skills to become a proficient decision-maker in R.
So, are you ready to step up your coding game and unlock the true potential of if-else statements in R? Let’s dive in and demystify this essential programming construct.
Table of Contents
- Understanding the if-else statement in R
- Using logical conditions in if-else statements
- Implementing multiple conditions with else if
- Nested if-else statements
- Avoiding common pitfalls with if-else statements
- 1. Forgetting to include an else statement
- 2. Not using proper logical operators
- 3. Neglecting order of conditions in else if statements
- 4. Overcomplicating nested if-else statements
- 5. Ignoring code readability and documentation
- Using if-else statements with vectors and data frames
- Simplifying complex conditions with logical operators
- Handling missing values in if-else statements
- Using if-else statements in control structures
- Practical applications of if-else statements in data analysis
- Advanced concepts and techniques with if-else statements
- Shortcuts and Efficiency Tips
- Best Practices for Clarity
- Innovative Applications
- Case Study: A/B Testing
- Conclusion
- FAQ
- What is an if-else statement in R?
- How do I use the if-else statement in R?
- Can I use logical conditions in if-else statements?
- How can I handle multiple conditions using else if in R?
- What are nested if-else statements in R?
- What are some common pitfalls to avoid with if-else statements in R?
- Can I use if-else statements with vectors and data frames in R?
- How can I simplify complex conditions in if-else statements?
- What should I do if I encounter missing values in if-else statements?
- Can I use if-else statements in control structures like loops and functions?
- What are some practical applications of if-else statements in data analysis?
- Are there any advanced concepts or techniques related to if-else statements in R?
Key Takeaways:
- Understand the syntax and functionality of the if-else statement in R
- Learn how to incorporate logical conditions within if-else statements
- Master the use of else if to handle multiple conditions efficiently
- Discover the power of nested if-else statements for complex decision-making
- Avoid common pitfalls and write clean, error-free code with if-else statements
Understanding the if-else statement in R
When writing code in R, it’s crucial to have control over the flow of your program. This is where the if-else statement comes into play. By using the if-else statement, you can create decision-making structures that execute different blocks of code based on specific conditions.
The if-else statement in R essentially follows a simple structure. First, you specify a logical condition, which is evaluated as either true or false. If the condition is true, the code inside the if block is executed. If the condition is false, the code inside the else block is executed.
To further illustrate this concept, consider the following example:
num
In this example, the logical condition num is evaluated. Since the value of
num
is 7, which is not less than 5, the code inside the else block is executed. As a result, the output will be: "The number is greater than or equal to 5."
By utilizing the if-else statement, you can make your code more dynamic and responsive. It allows you to handle different scenarios and execute different sets of instructions depending on the conditions you specify.
Using logical conditions in if-else statements
In R, if-else statements provide a powerful tool for making decisions in your code. By incorporating logical conditions within these statements, you can compare values and determine the appropriate course of action based on the outcome of the comparison.
Logical conditions allow you to check for specific conditions or relationships between values. Through the use of comparison operators such as ==, !=, <, >, <=, and >=, you can evaluate whether two values are equal, not equal, less than, greater than, less than or equal to, or greater than or equal to each other.
Let’s take an example to illustrate the use of logical conditions in if-else statements. Consider a scenario where you want to check if a person’s age is greater than or equal to 18 to determine if they are eligible to vote:
<pre><code>age <- 20
if (age >= 18) {
print("You are eligible to vote.")
} else {
print("You are not eligible to vote.")
}</code></pre>
The output of this code will be:
You are eligible to vote.
In this example, the logical condition age >= 18
is evaluated, and the if statement outputs “You are eligible to vote.” if the condition is true. Otherwise, the else statement is executed, and “You are not eligible to vote.” is displayed.
By utilizing logical conditions in if-else statements, you can solve a wide range of problems and manipulate your code’s behavior based on different criteria. These conditions enable you to handle complex decision-making scenarios and create dynamic, flexible code.
Example:
Consider a dataset of students’ grades with corresponding pass or fail status. Suppose you want to categorize the students into two groups based on their grades: those who scored above 80 and those who scored below or equal to 80.
<pre><code>grades <- c(75, 88, 92, 79, 81, 70, 84)
pass_fail <- vector()
for (grade in grades) {
if (grade > 80) {
pass_fail <- c(pass_fail, "Pass")
} else {
pass_fail <- c(pass_fail, "Fail")
}
}
grades_table <- data.frame(Grades = grades, Status = pass_fail)
grades_table</code></pre>
The resulting table would look like this:
Grades | Status |
---|---|
75 | Fail |
88 | Pass |
92 | Pass |
79 | Fail |
81 | Pass |
70 | Fail |
84 | Pass |
In this example, the if-else statement is used within a for loop to iterate over each grade in the grades vector. If a grade is greater than 80, “Pass” is added to the pass_fail vector; otherwise, “Fail” is added. Finally, the grades and status vectors are combined into a data frame called grades_table.
The table then displays each student’s grade along with their corresponding pass or fail status, providing a comprehensive overview of their performance.
Implementing multiple conditions with else if
Now that you’ve grasped the basics of the if-else statement in R, it’s time to explore how to handle multiple conditions using the else if clause. This powerful addition to the if-else statement allows you to make complex decisions in your code.
When faced with scenarios that require more than just a binary decision, the else if clause comes to the rescue. It allows you to specify additional conditions to be evaluated if the initial condition is false.
“The else if clause is like having a backup plan in your code. It gives you the flexibility to consider multiple conditions and perform different actions based on each one of them.”
By nesting multiple else if statements within the if-else structure, you can create a chain of conditions that are evaluated in a sequential manner. Once a condition evaluates to true, the corresponding block of code is executed, and the evaluation stops.
Below is an example of how the else if clause can be used:
if (condition1) {
# Code block executed if condition1 is true
} else if (condition2) {
# Code block executed if condition2 is true and condition1 is false
} else if (condition3) {
# Code block executed if condition3 is true and condition1 and condition2 are false
} else {
# Code block executed if all conditions are false
}
By using the else if clause, you can create a hierarchy of conditions and execute the appropriate code block based on the first condition that evaluates to true. This enables you to handle complex decision-making scenarios in your R code.
Example
To further illustrate how to implement multiple conditions with else if in R, let’s consider a practical example. Assume you’re writing a program to determine the grade of a student based on their exam score. The grading criteria are as follows:
Score Range | Grade |
---|---|
90 – 100 | A |
80 – 89 | B |
70 – 79 | C |
60 – 69 | D |
Below 60 | F |
Using the else if clause, you can implement this grading scheme in your code:
score = 90) {
grade = 80) {
grade = 70) {
grade = 60) {
grade
The output of this code would be ‘B’ since the score falls within the range of 80 – 89.
By implementing multiple conditions with else if, you can create dynamic and flexible code that adapts to various scenarios and produces accurate results.
Nested if-else statements
Take your decision-making abilities in R to the next level by exploring nested if-else statements. With nested if-else statements, you can handle even more complex scenarios and create intricate logic flows within your code.
So, what exactly are nested if-else statements? They allow you to nest one if-else statement within another, creating a hierarchical structure where multiple conditions can be evaluated sequentially.
With nested if-else statements, you can create a series of interconnected decision points, each building upon the previous one. This allows you to handle intricate situations and make nuanced choices based on multiple criteria.
To illustrate, let’s consider a scenario where you need to evaluate students’ test scores and assign grades accordingly. The logic flow might involve nested if-else statements to handle different score ranges:
Test Score | Grade |
---|---|
90+ | A |
80-89 | B |
70-79 | C |
60-69 | D |
below 60 | F |
In this example, the first if-else statement evaluates the test score, and if the score is 90 or above, the student receives an A. If the score falls between 80 and 89, they receive a B, and so on. Each grade range is handled by a nested if-else statement within the overall structure.
Nested if-else statements give you the power to handle complex decision-making scenarios, making your code more dynamic and flexible. By carefully nesting conditions and evaluating them in a hierarchical manner, you can create logical structures that navigate through intricate choices.
As you delve into the world of nested if-else statements, keep in mind that proper indentation and organization are crucial for readability and code maintenance. Use proper spacing, line breaks, and indentation to clearly distinguish between different levels of nesting.
Benefits of Nested If-Else Statements
Nested if-else statements offer several key benefits:
- Flexibility: With nested if-else statements, you can handle complex decision-making scenarios that cannot be easily accommodated with simple if-else structures.
- Improved Code Readability: By organizing your code into nested if-else structures, you make it easier for others (including your future self) to understand and interpret your logic flow.
- Efficiency: Nested if-else statements allow you to streamline your code by condensing multiple conditions and choices into a single logical structure, reducing the need for excessive repetitive code.
Unlock the full potential of decision-making in R with nested if-else statements, and elevate your code to handle intricate scenarios with ease and elegance.
Avoiding common pitfalls with if-else statements
When using if-else statements in R, it’s important to be aware of the common mistakes and pitfalls that can lead to errors or inefficient code. By understanding these pitfalls and following best practices, you can write clean and error-free code that performs optimally.
1. Forgetting to include an else statement
One common mistake is forgetting to include an else statement after the if condition. This can result in unexpected behavior when the condition evaluates to FALSE. Always ensure that you have specified both the if and else parts of the statement to cover all possibilities.
2. Not using proper logical operators
When comparing conditions within if-else statements, it’s important to use the correct logical operators. && should be used for AND conditions, while || should be used for OR conditions. Using the wrong operator can lead to incorrect evaluations and faulty logic in your code.
3. Neglecting order of conditions in else if statements
If you are using multiple conditions with else if, it’s crucial to consider the order in which they are written. R evaluates the conditions in the order they are specified, and once a condition is met, it ignores the rest. To ensure accurate evaluations, arrange the conditions in the appropriate order based on the desired logic flow.
4. Overcomplicating nested if-else statements
While nested if-else statements can be useful in handling complex decision-making scenarios, they can also become difficult to read and debug if they are overly complicated. Aim to keep your nested statements concise and organized to maintain code clarity.
5. Ignoring code readability and documentation
Readable code is essential for collaboration and future maintenance. Avoid using overly complex expressions or unclear variable names. Additionally, be sure to include comments within your code to explain your thought process and any important decisions.
Properly using if-else statements can greatly enhance the effectiveness and efficiency of your code. By being mindful of these common pitfalls and following best practices, you can write robust, error-free code that allows you to make informed decisions in your R projects.
Pitfall | Description | Best Practice |
---|---|---|
Forgetting to include an else statement | Leaving out the else part of an if-else statement, resulting in unexpected behavior when the condition is false. | Always include an else statement to account for all possible outcomes. |
Not using proper logical operators | Using incorrect logical operators, leading to incorrect evaluations or faulty logic in your code. | Use && for AND conditions and || for OR conditions. |
Neglecting order of conditions in else if statements | Not considering the order in which conditions are evaluated, which can lead to unwanted results. | Arrange the conditions in the desired order to ensure accurate evaluations. |
Overcomplicating nested if-else statements | Creating unnecessarily complex nested structures that are difficult to read and debug. | Keep nested if-else statements concise and organized for better code clarity. |
Ignoring code readability and documentation | Writing code that lacks clear variable naming and sufficient comments, making it hard to understand and maintain. | Use meaningful variable names and add comments to explain your code and decision-making process. |
Using if-else statements with vectors and data frames
Expand the functionality of if-else statements beyond scalar values and explore how to apply them to vectors and data frames in R. This powerful feature allows you to make data-driven decisions and automate complex processes within your data analysis pipeline.
When dealing with vectors, if-else statements enable you to conditionally modify or filter elements based on specific criteria. Whether you want to update values, create subsets, or generate new vectors, if-else statements provide a flexible and efficient solution. Here’s an example:
# Example: Updating a vector based on a condition
my_vector 5, my_vector * 2, my_vector) # Updated vector
In this example, the ifelse() function checks if each element in my_vector
is greater than 5. If the condition is true, the element is multiplied by 2; otherwise, the element remains unchanged. The resulting updated_vector
reflects the modifications made based on the if-else condition.
Similarly, if-else statements can be applied to data frames to conditionally manipulate or filter rows based on specific criteria. This capability is particularly valuable when working with large datasets and performing data cleaning or preprocessing tasks. Here’s an example:
# Example: Filtering rows in a data frame based on a condition
library(dplyr) # Load the dplyr package
filtered_df %
filter(if_else(condition, TRUE, FALSE)) # Filter rows based on a condition
In the above example, the filter()
function from the dplyr package is used along with an if-else statement to conditionally filter rows from the data frame my_df
. The condition
in the if-else statement represents the criteria that determine which rows to keep in the resulting filtered_df
.
Benefits of using if-else statements with vectors and data frames
- Efficiently perform conditional operations on multiple values or data points
- Automate data manipulation tasks based on specific criteria
- Enhance code readability and maintainability
- Enable data-driven decision-making within your analysis workflow
By harnessing the power of if-else statements with vectors and data frames in your R code, you can unlock new possibilities for data analysis and streamline your workflow.
Simplifying complex conditions with logical operators
In the world of programming, complex conditions can often lead to code that is difficult to read and understand. However, in R, you have the power to simplify these complex conditions using logical operators, making your code more streamlined and easier to comprehend.
Logical operators, such as “&&”, “||”, and “!”, enable you to combine multiple conditions in a single if-else statement. By doing so, you can eliminate the need for nested if-else statements and create cleaner code.
Take a look at the example below:
if (x > 5 && y
print(“Both conditions are satisfied”)
} else {
print(“At least one condition is not satisfied”)
}
In this example, the code checks if both “x” is greater than 5 and “y” is less than 10. If both conditions are satisfied, it prints the message “Both conditions are satisfied.” Otherwise, it prints “At least one condition is not satisfied.” By using the logical operator “&&” between the conditions, you simplify the code and make it more readable.
Here are the commonly used logical operators:
- && (AND): Returns TRUE if both conditions are TRUE.
- || (OR): Returns TRUE if at least one condition is TRUE.
- ! (NOT): Negates the condition.
Combining Logical Operators
You can also combine logical operators to create more complex conditions. By using parentheses to group conditions and applying the appropriate logical operators, you can create precise and concise if-else statements.
Let’s take a look at another example:
if ((x > 5 && y
print(“Condition is satisfied”)
} else {
print(“Condition is not satisfied”)
}
In this example, the code checks if either both “x” is greater than 5 and “y” is less than 10 or “z” is equal to “hello”. If the condition is satisfied, it prints the message “Condition is satisfied.” Otherwise, it prints “Condition is not satisfied.”
Using logical operators, you can create powerful if-else statements that simplify complex conditions and enhance the readability of your code.
Handling missing values in if-else statements
When working with data in R, it is common to encounter missing values. These missing values can arise due to various reasons such as data collection errors or incomplete records. Handling these missing values effectively becomes crucial to ensure accurate and reliable analysis. In this section, we will explore strategies for dealing with missing values in if-else statements, enabling you to account for and handle them in your R code.
One common approach to handling missing values is by using conditional statements within if-else blocks. By incorporating logical conditions, you can check for missing values and execute specific code blocks accordingly. Let’s take a look at an example:
# Example: Handling missing values in if-else statements
# Checking if a numeric value is missing
if (is.na(x)) {
# Code to handle missing value
} else {
# Code to handle non-missing value
}
In the example above, the is.na()
function is used to determine whether the variable x
contains a missing value. If the condition evaluates to TRUE
, the code block within the first set of curly brackets is executed to handle the missing value. Otherwise, if the condition evaluates to FALSE
, the code block within the second set of curly brackets is executed to handle the non-missing value.
By leveraging if-else statements in this manner, you can implement customized actions for missing and non-missing values in your data. This allows you to adapt your code and avoid errors or biased analysis due to missing values.
To further enhance your handling of missing values in if-else statements, you can also utilize additional functions such as complete.cases()
and na.action()
. These functions provide further flexibility and control over how missing values are dealt with in your R code.
Overall, by incorporating the strategies outlined in this section, you can effectively handle missing values in if-else statements and ensure the accuracy and reliability of your data analysis in R.
Using if-else statements in control structures
When it comes to writing efficient and dynamic code in R, the integration of if-else statements within control structures like loops and functions is essential. By incorporating if-else statements into these structures, you can enhance the versatility and functionality of your code, allowing for more complex decision-making processes.
Loops
One of the most common control structures in R is the loop, which allows you to repeat a block of code multiple times. By combining if-else statements with loops, you can introduce conditional execution within each iteration. This enables you to perform specific actions based on certain conditions, enhancing the flexibility and responsiveness of your code.
Example: Using an if-else statement in a for loop to iterate through a vector and print even or odd numbers:
Code | Output |
---|---|
|
|
Functions
In addition to loops, control structures can also be integrated into functions. This allows you to create custom functions that incorporate if-else statements to make decisions based on input arguments. By leveraging this functionality, you can create more robust and adaptable functions that handle different scenarios and produce diverse outcomes.
Example: Creating a function that returns the square of a number if it is positive, or the absolute value if it is negative:
Code | Output |
---|---|
|
|
By embracing if-else statements within control structures like loops and functions, you can unlock the full potential of decision-making in your R code. Whether you need to iterate through data or create flexible functions, leveraging if-else statements in control structures empowers you to write efficient and adaptable code that meets the demands of complex scenarios.
Practical applications of if-else statements in data analysis
When it comes to data analysis, if-else statements in R can be invaluable tools for making decisions and extracting meaningful insights. By applying conditional logic, these statements allow analysts to handle different scenarios, filter data, and perform calculations based on specific conditions. Let’s explore some practical applications of if-else statements in data analysis and understand their benefits.
Segmenting data
One common application of if-else statements is segmenting data based on specific criteria. For example, imagine an analyst working with a customer database and wanting to classify customers as high, medium, or low value based on their purchase history. By using if-else statements, the analyst can define conditions that categorize customers accordingly, providing a deeper understanding of customer behavior.
Handling missing data
In data analysis, missing values can often pose challenges. If-else statements can be used to address this issue by creating rules for handling and imputing missing data. Analysts can define conditions to identify missing values, and then specify the actions to take, such as replacing them with the mean or median of the available data. This ensures accurate analysis and prevents bias.
Filtering data
When dealing with large datasets, filtering data based on specific conditions is a common task. If-else statements enable analysts to extract subsets of data that meet certain criteria. For example, an analyst may want to filter data to include only sales transactions above a certain threshold or specific time periods. By using if-else statements, data can be efficiently filtered to focus on relevant information.
Performing calculations
If-else statements also play a crucial role in performing calculations based on specific conditions. Analysts can define rules to calculate metrics or variables based on particular scenarios. For example, an analyst working with a retail dataset may want to calculate the total revenue for different product categories. By using if-else statements, the analyst can specify the calculation for each category, enhancing the accuracy and efficiency of the analysis.
“If-else statements in data analysis allow analysts to make precise and informed decisions based on specific conditions, transforming raw data into meaningful insights.” – Data Analyst at XYZ Company
Overall, if-else statements in R offer a powerful toolbox for analysts in data analysis. By using conditional logic, analysts can segment data, handle missing values, filter data, and perform calculations based on specific conditions. These practical applications not only streamline analysis processes but also enhance the accuracy and depth of insights gained. Mastering if-else statements in data analysis can unlock significant potential for analysts to make data-driven decisions.
Advanced concepts and techniques with if-else statements
Once you have grasped the fundamentals of if-else statements in R, it’s time to explore advanced techniques and concepts that can take your code to the next level. By leveraging these methods, you can improve efficiency, readability, and overall code quality.
Shortcuts and Efficiency Tips
Efficiency is key in programming, and if-else statements are no exception. Here are some advanced shortcuts and tips to optimize your code:
- Using the ternary operator to condense if-else statements into a single line
- Utilizing the switch statement for multiple conditions with specific values
- Applying vectorization to perform if-else operations on entire vectors at once
Best Practices for Clarity
Writing clean and understandable code is crucial for collaboration and future maintenance. Consider the following best practices when working with if-else statements:
- Using meaningful variable names to enhance code readability
- Structuring your if-else statements with appropriate indentations for better visual organization
- Adding comments to explain complex decision-making processes or any unusual approaches
Innovative Applications
Take your understanding of if-else statements to the next level by exploring innovative applications:
“If-else statements can be used in conjunction with functional programming concepts, such as map and reduce. This allows you to perform complex operations on large datasets with fewer lines of code.”
Case Study: A/B Testing
Let’s consider a real-world scenario where if-else statements are used to make data-driven decisions. In a marketing department, A/B testing is a common practice to compare the effectiveness of different strategies. By using if-else statements, you can automatically analyze the test results and determine the winning strategy:
Strategy | Conversion Rate | Winner |
---|---|---|
Strategy A | 8% | No |
Strategy B | 12% | Yes |
In the example above, the if-else statement compares the conversion rates of Strategy A and Strategy B and determines that Strategy B is the winner due to its higher conversion rate.
By understanding and implementing advanced techniques and concepts with if-else statements, you can unlock a whole new level of programming prowess in R. Discover shortcuts, follow best practices, and explore innovative applications to enhance the power and effectiveness of your code.
Conclusion
Mastering the if-else statement in R is an essential skill for any data analyst or programmer. Throughout this article, we have explored the basics of if-else statements, including their syntax and functionality. By using logical conditions, we can make decisions in our code based on comparisons between values or variables.
The if-else statement becomes even more powerful when we incorporate else if to handle multiple conditions. This allows us to create complex decision-making scenarios and control the flow of our code effectively. Additionally, nesting if-else statements provides a way to tackle even more intricate situations, enabling us to build robust and flexible code.
Avoiding common pitfalls while using if-else statements is crucial for writing clean, error-free code. Understanding how to handle missing values, simplifying complex conditions with logical operators, and integrating if-else statements within control structures like loops and functions further expands the versatility and functionality of our code.
In practical applications, if-else statements are invaluable for data analysis. By making informed decisions based on data conditions, experts can extract meaningful insights and solve complex problems. The ability to efficiently utilize if-else statements can significantly enhance the decision-making process in data analysis, leading to more accurate results and valuable conclusions.
FAQ
What is an if-else statement in R?
An if-else statement is a programming construct in R that allows you to make decisions based on certain conditions. It evaluates a condition and executes a specific block of code if the condition is true, and a different block of code if the condition is false.
How do I use the if-else statement in R?
To use the if-else statement in R, you need to specify a condition in the “if” part, followed by the code to be executed if the condition is true. Then, in the “else” part, you specify the code to be executed if the condition is false.
Can I use logical conditions in if-else statements?
Yes, you can use logical conditions in if-else statements in R. You can compare values using logical operators such as “==” (equal to), “!=” (not equal to), “” (greater than), “=” (greater than or equal to).
How can I handle multiple conditions using else if in R?
To handle multiple conditions in R, you can use the “else if” construct. It allows you to specify additional conditions and their corresponding code blocks to be executed if the previous conditions are false.
What are nested if-else statements in R?
Nested if-else statements in R are if-else statements that are placed inside another if-else statement. This allows you to create more complex decision-making scenarios by evaluating multiple conditions and executing different blocks of code accordingly.
What are some common pitfalls to avoid with if-else statements in R?
Some common pitfalls to avoid when using if-else statements in R include forgetting to include an “else” statement, mismatching parentheses, and not considering all possible scenarios. It is important to thoroughly test your code and handle all possible conditions.
Can I use if-else statements with vectors and data frames in R?
Yes, if-else statements can be used with vectors and data frames in R. You can apply them element-wise to vectors or use them to conditionally modify data frames based on specific criteria.
How can I simplify complex conditions in if-else statements?
To simplify complex conditions in if-else statements in R, you can use logical operators such as “&&” (logical AND), “||” (logical OR), and “!” (logical NOT). These operators help combine multiple conditions into a single statement.
What should I do if I encounter missing values in if-else statements?
When encountering missing values in if-else statements in R, you can use additional functions like “is.na()” or “complete.cases()” to handle them. These functions help identify and treat missing values appropriately based on your specific requirements.
Can I use if-else statements in control structures like loops and functions?
Yes, if-else statements can be integrated within control structures like loops and functions in R. This allows you to incorporate decision-making logic into iterative processes or customize the behavior of your functions based on certain conditions.
What are some practical applications of if-else statements in data analysis?
Some practical applications of if-else statements in data analysis include data cleaning and preprocessing, outlier detection and handling, filtering and subsetting data based on certain criteria, and creating conditional variables or flags to categorize data.
Are there any advanced concepts or techniques related to if-else statements in R?
Yes, there are advanced concepts and techniques related to if-else statements in R. These include using the “switch” statement for multiple conditions, employing vectorized if-else statements for performance optimization, and leveraging the power of the “dplyr” package for data manipulation tasks.