迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 R 中将计算列添加到矩阵

作者:迹忆客 最近更新:2023/03/21 浏览次数:

本文展示了两个任务:向现有矩阵添加一列,并在新列中包含计算值,例如总和或平均值。

在 R 中将计算列添加到矩阵

我们可以使用 cbind() 函数将两个具有相同行的矩阵组合在一起。

同样的函数也可以在矩阵中添加一个向量。向量的元素数应与矩阵中的行数相同。

我们将按照我们想要结果的顺序将矩阵或向量的名称传递给 cbind()

示例代码:

# We will create two matrices with the
# same number of rows and join them
# using cbind.

i = matrix(data=5:16, nrow=4)
ii = matrix(data=17:24, nrow=4)

# Combine i and ii in both orders and
# check the results.
cbind(i, ii)

cbind(ii,i)

# To illustrate adding a column
# we will create and add a vector.
# The number of elements must
# match the row count of the matrix.
z = c(seq(from=60, to=90, by=10))

# Add z to one of the matrices as a column.
cbind(ii, z)
# We see the variable name.

# Use as.matrix to remove the variable name.
cbind(ii, as.matrix(z))

输出:

> # Combine i and ii in both orders and
> # check the results.
> cbind(i, ii)
     [,1] [,2] [,3] [,4] [,5]
[1,]    5    9   13   17   21
[2,]    6   10   14   18   22
[3,]    7   11   15   19   23
[4,]    8   12   16   20   24
>
> cbind(ii,i)
     [,1] [,2] [,3] [,4] [,5]
[1,]   17   21    5    9   13
[2,]   18   22    6   10   14
[3,]   19   23    7   11   15
[4,]   20   24    8   12   16
>
> # Add z to one of the matrices as a column.
> cbind(ii, z)
            z
[1,] 17 21 60
[2,] 18 22 70
[3,] 19 23 80
[4,] 20 24 90
> # We see the variable name.
>
> # Use as.matrix to remove the variable name.
> cbind(ii, as.matrix(z))
     [,1] [,2] [,3]
[1,]   17   21   60
[2,]   18   22   70
[3,]   19   23   80
[4,]   20   24   90

在 R 中创建和添加计算列

我们需要将合​​适的函数传递给 cbind() 函数以添加计算列。

合适的函数是那些将应用于每一行的函数。它们包括 rowSums()rowMeans() 函数,以及可在 apply() 函数中使用的其他函数。

对于函数的数据源,我们可以传递整个矩阵,也可以使用子设置语法选择所需的列。

在下面的代码中,rowSums() 函数计算第 1 列和第 2 列的总和,apply() 函数用于计算第 2 列和第 3 列的 mean

apply() 函数的第二个参数 1 表示我们将后面的函数 mean 应用于行。

示例代码:

# Add a column with the sum of columns 1 and 2 of i.
cbind(i, rowSums(i[,c(1,2)])) # Based on the apply function.

# Add a column with the mean of columns 2 and 3 of i.
cbind(i, apply(i[,c(2,3)], 1, mean)) # Directly use the apply function.

输出:

> # Add a column with the sum of columns 1 and 2 of i.
> cbind(i, rowSums(i[,c(1,2)])) # Based on the apply function.
     [,1] [,2] [,3] [,4]
[1,]    5    9   13   14
[2,]    6   10   14   16
[3,]    7   11   15   18
[4,]    8   12   16   20
>
> # Add a column with the mean of columns 2 and 3 of i.
> cbind(i, apply(i[,c(2,3)], 1, mean)) # Directly use the apply function.
     [,1] [,2] [,3] [,4]
[1,]    5    9   13   11
[2,]    6   10   14   12
[3,]    7   11   15   13
[4,]    8   12   16   14

有关更多详细信息,请参阅 matrixcbindrowSumsapply 函数的文档。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

R 中具有多个条件的函数向量化

发布时间:2023/03/21 浏览次数:64 分类:编程语言

一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更

在 R 中读取 xlsx 文件

发布时间:2023/03/21 浏览次数:66 分类:编程语言

在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。

清理 R 的环境

发布时间:2023/03/21 浏览次数:178 分类:编程语言

在本教程中,你将学习如何在 R 中编写一个函数,在不需要重新启动 R 的情况下清除环境。

在 R 中注释掉多行

发布时间:2023/03/21 浏览次数:63 分类:编程语言

在本文中,你将学习如何在 R 中注释出多行,而不必在每一行的开头手动写一个#字符来注释。

在 R 中清除内存

发布时间:2023/03/21 浏览次数:197 分类:编程语言

在本教程中,你将学习如何清除 R 系统占用的内存,而不必重新启动它或重新启动它运行的计算机。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便