#### Overview of this book

This cookbook offers a range of data analysis samples in simple and straightforward R code, providing step-by-step resources and time-saving methods to help you solve data problems efficiently. The first section deals with how to create R functions to avoid the unnecessary duplication of code. You will learn how to prepare, process, and perform sophisticated ETL for heterogeneous data sources with R packages. An example of data manipulation is provided, illustrating how to use the “dplyr” and “data.table” packages to efficiently process larger data structures. We also focus on “ggplot2” and show you how to create advanced figures for data exploration. In addition, you will learn how to build an interactive report using the “ggvis” package. Later chapters offer insight into time series analysis on financial data, while there is detailed information on the hot topic of machine learning, including data classification, regression, clustering, association rule mining, and dimension reduction. By the end of this book, you will understand how to resolve issues and will be able to comfortably offer solutions to problems encountered while performing data analysis.
R for Data Science Cookbook
Credits
www.PacktPub.com
Preface
Free Chapter
Functions in R
Data Preprocessing and Preparation
Visualizing Data with ggplot2
Making Interactive Reports
Simulation from Probability Distributions
Statistical Inference in R
Time Series Mining with R
Index

## Creating R functions

The R language is a collection of functions; a user can apply built-in functions from various packages to their project, or they can define a function for a particular purpose. In this recipe, we will show you how to create an R function.

If you are new to the R language, you can find a detailed introduction, language history, and functionality on the official R site (http://www.r-project.org/). When you are ready to download and install R, please connect to the comprehensive R archive network (http://cran.r-project.org/).

### How to do it...

Perform the following steps in order to create your first R function:

1. Type the following code on your R console to create your first function:

```>addnum<- function(x, y){
+ s <- x+y
+ return(s)
+ }
```
2. Execute the `addnum` user-defined function with the following command:

```>addnum (3,7)
[1] 10
```

Or, you can define your function without a `return` statement:

```>addnum2<- function(x, y){
+ x+y
+ }
```
3. Execute the `addnum2` user-defined function with the following command:

```>addnum2(3,7)
[1] 10
```
4. You can view the definition of a function by typing its function name:

```>addnum2
function(x, y){
x+y
}
```
5. Finally, you can use body and formals to examine the `body` and `formal` arguments of a function:

```>body(addnum2)
{
x + y
}
\$x
\$y
function (x, y)
NULL
```

### How it works...

R functions are a block of organized and reusable statements, which makes programming less repetitive by allowing you to reuse code. Additionally, by modularizing statements within a function, your R code will become more readable and maintainable.

By following these steps, you can now create two `addnum` and `addnum2` R functions, and you can successfully add two input arguments with either function. In R, the function usually takes the following form:

```FunctionName<- function (arg1, arg2) {
body
return(expression)
}
```

`FunctionName` is the name of the function, and `arg1` and `arg2` are arguments. Inside the curly braces, we can see the function body, where a body is a collection of a valid statement, expression, or assignment. At the bottom of the function, we can find the `return` statement, which passes expression back to the caller and exits the function.

The `addnum` function is in standard function syntax, which contains both `body` and `return` statement. However, you do not necessarily need to put a `return` statement at the end of the function. Similar to the `addnum2` function, the function itself will return the last expression back to the caller.

If you want to view the composition of the function, simply type the function name on the interactive shell. You can also examine the `body` and `formal` arguments of the function further using the `body` and `formal` functions. Alternatively, you can use the `args` function to obtain the argument list of the function.

### There's more...

If you want to see the documentation of a function in R, you can use the `help` function or simply type `?` in front of the function name. For example, if you want to examine the documentation of the `sum` function, you would do the following:

```>help(sum)
> ?sum
```