There is no built-in square function in R for the squaring operation. However, you can use two operators to calculate the square of a value: * and ^. The below examples will show you how to use them.

**Square Function In R**

**With The * Operator**

In R, * is an arithmetic operator for multiplication. You can use it to multiply a number by itself. This operator is valid for all number variables in R.

**Example**

a <- 5 a * a

`[1] 25`

In this example, we have used the * operator to square the variable a. Since a is an integer, the returned value is also a perfect square. But you can also apply this operator to non-integer numbers as well:

b <- 3.14 b * b

`[1] 9.8596`

Keep in mind that you shouldn’t use the* operator for non-numeric values. Otherwise, your operation will result in errors. In the command below, R couldn’t process your square operation and the character variable:

string <- "LearnShareIT" string * string

`Error in string * string : non-numeric argument to binary operator`

In addition to individual values, you can also square other data structures in R.

Suppose you have a numeric vector of 5 numbers. The * operator will return a vector of the same size whose elements are the square of each element in the original vector.

c <- c(5, 10, 2.5, -8, 0.1) c * c

`[1] 25.00 100.00 6.25 64.00 0.01`

It works in a similar way with data frames, meaning you will also get a data frame with the same shape that contains the squares of all elements in the input data frame.

To demonstrate this, let’s create a simple data frame first:

df <- data.frame( a = 1:4, b = 5:8, c = 9:12)

Now check out its content and square it with the * operator:

`> df`

```
a b c
1 1 5 9
2 2 6 10
3 3 7 11
4 4 8 12
```

`> df * df`

```
a b c
1 1 25 81
2 4 36 100
3 9 49 121
4 16 64 144
```

It is important to note that you can’t square a list like that, even though this operation is valid with vectors and data frames. Any attempt to use the * operator to multiply a list by itself would result in errors:

d <- list(5, 10, 2.5, -8, 0.1) d * d

`Error in d * d : non-numeric argument to binary operator`

**Note**: learn more about basic commands in R, including list(), with this guide.

To work around this, you can use the sapply() function. It can help you apply a function over a list.

sapply(d, function(x) x * x)

`[1] 25.00 100.00 6.25 64.00 0.01`

The sapply() function can actually be used for other data structures like vectors and data frames as well, even though the * operators are still the easier solution.

**With The ^ Operator**

Instead of multiplying a value by itself, you can raise it to power 2 with the exponentiation operator (^). You can just use it in place of the * operator in the above examples, including in the sapply() function:

a ^ 2

`[1] 25`

b ^ 2

`[1] 9.8596`

c ^ 2

`[1] 25.00 100.00 6.25 64.00 0.01`

df ^ 2

```
a b c
1 1 25 81
2 4 36 100
3 9 49 121
4 16 64 144
```

sapply(d, function(x) x ^ 2)

`[1] 25.00 100.00 6.25 64.00 0.01`

**Summary**

There isn’t a square function in R for this operation, but you can use either the * or ^ operator. Functions like sapply() can allow you to square individual elements in complex data structures as well.

**Maybe you are interested**:

- The floor() function in R
- How To Use The Probability Density Function In R
- How To Use count() Function In R

My name is Robert. I have a degree in information technology and two years of expertise in software development. I’ve come to offer my understanding on programming languages. I hope you find my articles interesting.

**Job:** Developer

**Name of the university: **HUST

**Major**: IT

**Programming Languages**: Java, C#, C, Javascript, R, Typescript, ReactJs, Laravel, SQL, Python