outer() Function in R with Examples

• Post author:
• Post category:R Programming

The outer() in R is used to apply the function to two arrays or vectors to get the result in a Matrix. In this article, I will explain the syntax of the outer() function and how to use this to get the product of two arrays or vectors by applying custom functions.

R outer() Function Key Points

• The outer in R function is used to create a matrix, tables e.t.c
• It is used either with a vector or arrays of numeric values.
• It can also be used with other data types. Need to be careful when applying functions.
• It can also implement user-defined functions on vectors or arrays.

1. Syntax of outer() Function

Following is the syntax of the `outer()` function in R programming.

``````
# Syntax of outer() function
outer(X, Y, FUN = "*", …)
``````

The following are parameters.

• `X` – First argument; Array or Vector
• `Y` – Second argument; Array or Vector
• `FUN` – Function to apply on outer products. When not specified, it by default applies multiply

2. Outer() in R using Vector

Use the `outer()` function to get the outer product of the arrays or vectors in R. This function takes `X` and `Y` as arguments with dimensions `dim(X)` and `dim(Y)` and returns the matrix output `c(dim(X), dim(Y))`. In other words, the shape of the matrix would be `(len(x), len(y))`.

``````
# Outer product of single Vector
x <- 1:6
y <- 2
res <- outer(x,y)
print(res)
``````

Yields below output.

3. R Outer Using Two Vectors

Now let’s check the output of the R outer product by using two vectors of the same size. Here, I am using the + operator as a function. Here, every element of the first vector is added to every element of the second vector and forms the matrix output.

``````

# Outer product of two vectors
x <- 2:5
y <- 3:6
print(x)
print(y)
res <- outer(x,y, "+")
print(res)
``````

Yields below output.

4. Outer in R with Custom Function

So far you have learned to use R outer() with the default function or use an arithmetic operator, besides these, you can also apply a custom operation by calling a user defined function. In the below example, I have created fun1() that takes the x and y arguments and applies the custom function.

``````
# Outer with custom function
fun1 <- function(x,y){
return ((x + y) * 2)
}
res2 <- outer(x,y, fun1)
print(res2)
``````

Yields below output. Here, the outer() function calls the fun1() for every element of the first vector with every element of the second vector.

5. Outer Product with Character Data Type

You can also use the R outer() function with character arrays or vectors and apply the custom function for each value.

Here, the `paste()` function is used to concatenate two character values with the separator `"_"`. Note that even for character vectors the result would be a matrix. c() is used to create a character vector.

``````
# Outer product of character vectors
x <- c('AB','CD')
y <- c('X','Y')
fun1 <- function(x,y){
return (paste(x, y, sep="_"))
}
res2 <- outer(x,y, fun1)
print(res2)
``````

Yields below output. As you see above, we created two character vectors, both consisting of letters.

6. Conclusion

In this article, you have learned outer in R and using this how to product two arrays or vectors to get a Matrix by applying function. Also, learned to apply a function with outer() and finally use this function with character vectors.

You can find the complete example at GitHub Project.

Related Articles

NNK

SparkByExamples.com is a Big Data and Spark examples community page, all examples are simple and easy to understand and well tested in our development environment Read more ..