- Getting started with R Language
- *apply family of functions (functionals)
- .Rprofile
- Aggregating data frames
- Analyze tweets with R
- ANOVA
- Arima Models
- Arithmetic Operators
- Bar Chart
- Base Plotting
- Bibliography in RMD
- boxplot
- caret
- Classes
- Cleaning data
- Code profiling
- Coercion
- Color schemes for graphics
- Column wise operation
- Combinatorics
- Control flow structures
- Creating packages with devtools
- Creating reports with RMarkdown
- Creating vectors
- Data acquisition
- Data frames
- data.table
- Date and Time
- Date-time classes (POSIXct and POSIXlt)
- Debugging
- Distribution Functions
- dplyr
- Expression: parse + eval
- Extracting and Listing Files in Compressed Archives
- Factors
- Fault-tolerant/resilient code
- Feature Selection in R -- Removing Extraneous Features
- Formula
- Fourier Series and Transformations
- Functional programming
- Generalized linear models
- Get user input
- ggplot2
- GPU-accelerated computing
- Hashmaps
- heatmap and heatmap.2
- Hierarchical clustering with hclust
- Hierarchical Linear Modeling
- I/O for database tables
- I/O for foreign tables (Excel, SAS, SPSS, Stata)
- I/O for geographic data (shapefiles, etc.)
- I/O for raster images
- I/O for R's binary format
- Implement State Machine Pattern using S4 Class
- Input and output
- Inspecting packages
- Installing packages
- Introduction to Geographical Maps
- Introspection
- JSON
- Linear Models (Regression)
- Lists
- lubridate
- Machine learning
- Matrices
- Meta: Documentation Guidelines
- Missing values
- Modifying strings by substitution
- Natural language processing
- Network analysis with the igraph package
- Non-standard evaluation and standard evaluation
- Numeric classes and storage modes
- Object-Oriented Programming in R
- Parallel processing
- Pattern Matching and Replacement
- Performing a Permutation Test
- Pipe operators (%>% and others)
- Pivot and unpivot with data.table
- Probability Distributions with R
- Publishing
- R code vectorization best practices
- R in LaTeX with knitr
- R Markdown Notebooks (from RStudio)
- R memento by examples
- Random Forest Algorithm
- Random Numbers Generator
- Randomization
- Raster and Image Analysis
- Rcpp
- Reading and writing strings
- Reading and writing tabular data in plain-text files (CSV, TSV, etc.)
- Recycling
- Regular Expression Syntax in R
- Regular Expressions (regex)
- Reproducible R
- Reshape using tidyr
- Reshaping data between long and wide forms
- RESTful R Services
- RMarkdown and knitr presentation
- RODBC
- roxygen2
- Run-length encoding
- Scope of variables
- Set operations
- Shiny
- Solving ODEs in R
- Spark API (SparkR)
- spatial analysis
- Speeding up tough-to-vectorize code
- Split function
- sqldf
- Standardize analyses by writing standalone R scripts
- String manipulation with stringi package
- strsplit function
- Subsetting
- Survival analysis
- Text mining
- The character class
- The Date class
- The logical class
- tidyverse
- Time Series and Forecasting
- Updating R and the package library
- Updating R version
- Using pipe assignment in your own package %<>%: How to ?
- Using texreg to export models in a paper-ready way
- Variables
- Web Crawling in R
- Web scraping and parsing
- Writing functions in R
- xgboost

**What is recycling in R**

Recycling is when an object is automatically extended in certain operations to match the length of another, longer object.

For example, the vectorised addition results in the following:

```
c(1,2,3) + c(1,2,3,4,5,6)
[1] 2 4 6 5 7 9
```

Because of the recycling, the operation that actually happened was:

```
c(1,2,3,1,2,3) + c(1,2,3,4,5,6)
```

In cases where the longer object is not a multiple of the shorter one, a warning message is presented:

```
c(1,2,3) + c(1,2,3,4,5,6,7)
[1] 2 4 6 5 7 9 8
Warning message:
In c(1, 2, 3) + c(1, 2, 3, 4, 5, 6, 7) :
longer object length is not a multiple of shorter object length
```

Another example of recycling:

```
matrix(nrow =5, ncol = 2, 1:5 )
[,1] [,2]
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 4 4
[5,] 5 5
```

Recycling can be used in a clever way to simplify code.

**Subsetting**

If we want to keep every third element of a vector we can do the following:

```
my_vec <- c(1,2,3,4,5,6,7,8,9,10)
my_vec[c(TRUE, FALSE)]
[1] 1 3 5 7 9
```

Here the logical expression was expanded to the length of the vector.

We can also perform comparisons using recycling:

```
my_vec <- c("foo", "bar", "soap", "mix")
my_vec == "bar"
[1] FALSE TRUE FALSE FALSE
```

Here "bar" gets recycled.

This modified text is an extract of the original Stack Overflow Documentation created by following contributors and released under CC BY-SA 3.0

This website is not affiliated with Stack Overflow

SUPPORT & PARTNERS