The **rowSums()** method calculates the sum of each row of a numeric array, matrix, or data frame. Next, the **colSums() **method calculates the sum of each column of a numeric data frame, matrix, or array. Finally, the **colMeans()** method calculates the mean of each column of a **numeric array**, **matrix**, or **data frame**.

**rowSums in R**

The rowSums() is a built-in R function used to calculate the sum of rows of a matrix or an array. The rowSums() method takes an R Object-like matrix or array and returns the sum of rows.

To create a row sum and a row product column in an R data frame, use the rowSums() function and the star sign (*) for the product of column values inside the transform function.

**Syntax**

`rowSums(x, na.rm=FALSE, dims=1L,...) `

**Parameters**

**x:** Raster* object.

**na.rm:** It is a logical argument. If TRUE, NA values are ignored.

**dims:** this argument is ignored.

**…:** additional arguments (none implemented).

**Example**

To create a Matrix in R, use the matrix() function and pass the data and dimensions.

```
rv <- rep(1:4)
mtrx <- matrix(rv, 2, 2)
```

The **rep**() **function** replicates numeric values, or text, or the values of a vector for a specific number of times.

The **matrix()** function will create a **2 X 2** matrix.

To calculate the sum of row values, use the **rowSums()** function.

```
rv <- rep(1:4)
mtrx <- matrix(rv, 2, 2)
mtrx
cat("The sum of rows is: ", "\n")
rowSums(mtrx)
```

**Output**

```
[,1] [,2]
[1,] 1 3
[2,] 2 4
The sum of rows is:
[1] 4 6
```

You can see that the sum of row values 1 and 3 is 4, and 2 and 4 are 6. So that is why we get the output of 4 and 6.

**Calculating the sum of rows of the array in R**

To calculate the sum of rows of an array in R, use the rowSums() function. Let’s create an array and use the rowSums() function to calculate the sum of rows of the array.

To create an array in R, use the array() function.

```
arr <- array(1:12, c(2, 3, 3))
arr
cat("The sum of rows is: ", "\n")
rowSums(arr)
```

**Output**

```
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
The sum of rows is:
[1] 45 54
```

You can pass the **dim **parameter to the **rowSums() **function.

```
arr <- array(1:12, c(2, 3, 3))
cat("The sum of rows is: ", "\n")
rowSums(arr, dim=2)
```

**Output**

```
The sum of rows is:
[,1] [,2] [,3]
[1,] 9 15 21
[2,] 12 18 24
```

**Finding the sum of rows of a data frame in R**

To calculate the sum of rows of the data frame, use the rowSums() function.

To create a data frame in R, use the data.frame() function.

```
x <- c(2:4)
y <- c(2:4 * 2)
z <- c(2:4 * 3)
w <- c(2:4 * 4)
df <- data.frame(x, y, z, w)
df
cat("The sum of rows of df is: ", "\n")
rowSums(df)
```

**Output**

```
x y z w
1 2 4 6 8
2 3 6 9 12
3 4 8 12 16
The sum of rows of df is:
[1] 20 30 40
```

**Calculating the sum of rows of a data set in R**

You can calculate the sum of rows of a dataset in R using the rowSums() function. For example, we will use the **USArrests **dataset. Also, we will use the head() function to calculate the sum of the first 6 rows.

```
df <- head(USArrests)
rowSums(df)
```

**Output**

```
Alabama Alaska Arizona Arkansas California Colorado
328.4 365.5 413.1 268.3 416.6 328.6
```

**Handling NA Values (na.rm) in rowSums() function**

One of the most regular issues of the R rowSums() function is the existence of NAs (i.e., missing values) in the data. Let’s see what happens when we apply our functions to data with missing values.

```
x <- c(1, 2, NA, 3)
y <- c(NA, 4, 5, 6)
z <- c(7, NA, 8, 9)
w <- c(10, 11, NA, 13)
df <- data.frame(x, y, z, w)
df
cat("The sum of rows of df is: ", "\n")
rowSums(df)
```

**Output**

```
x y z w
1 1 NA 7 10
2 2 4 NA 11
3 NA 5 8 NA
4 3 6 9 13
The sum of rows of df is:
[1] NA NA NA 31
```

Most of our results contain **NAs,** and definitely, we do not want this.

But no worries, there is an easy solution. First, we have to add **na.rm = TRUE** within our functions.

```
x <- c(1, 2, NA, 3)
y <- c(NA, 4, 5, 6)
z <- c(7, NA, 8, 9)
w <- c(10, 11, NA, 13)
df <- data.frame(x, y, z, w)
cat("The sum of rows of df is: ", "\n")
rowSums(df, na.rm = TRUE)
```

**Output**

```
The sum of rows of df is:
[1] 18 17 13 31
```

As you can see that it ignored the **NA** values and calculate the sum of the remaining row values. Please note that the handling of missing values is a research topic by itself. Just ignoring **NA** values is usually not the best idea.

That is it for the rowSums() function in the R tutorial.

**See also**

Calculate the square of Number in R

Krunal Lathiya is an Information Technology Engineer by education and web developer by profession. He has worked with many back-end platforms, including Node.js, PHP, and Python. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language. Krunal has written many programming blogs, which showcases his vast expertise in this field.