迹忆客 专注技术分享

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

标准化矩阵 R 中的值

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

本文将介绍如何对 R 矩阵中的值进行归一化。

在 R 中使用 sweep 函数清除数组

sweep 函数用于从数组中清除汇总统计量。它将输入数组作为第一个参数,将汇总统计作为第三个参数。该函数的第二个参数表示需要与第三个参数向量的元素对应的索引向量。第四个参数表示用于清除数组的函数。在这种情况下,我们传递除法运算符,它可以提供带引号的符号 - "/"。该函数返回与输入数组具有相同形状的数组。我们利用 colSums 函数计算给定输入数组的列总和,并将结果作为汇总统计量传递。

require(stats)

v1 <- c(1.1, 1.2, 4.3, 1.3, 3.9, 2.1, 5.3, 3.8, 7.7, 8.8, 6.7, 2.6)
m1 <- matrix(v1, ncol = 4)

sweep(m1, 2, colSums(m1), FUN = "/")

输出:

          [,1]      [,2]      [,3]      [,4]
[1,] 0.1666667 0.1780822 0.3154762 0.4861878
[2,] 0.1818182 0.5342466 0.2261905 0.3701657
[3,] 0.6515152 0.2876712 0.4583333 0.1436464

需要注意的是,sweep 函数也可以使用函数参数的默认值。如果用户未明确提供,则假定该函数是减法运算符。请注意,当传递自定义函数对象时,它应该有两个参数。以下代码片段从矩阵相应列中的元素中减去每列的中值。

require(stats)

v1 <- c(1.1, 1.2, 4.3, 1.3, 3.9, 2.1, 5.3, 3.8, 7.7, 8.8, 6.7, 2.6)
m1 <- matrix(v1, ncol = 4)

med.att <- apply(m1, 2, median)
sweep(m1, 2, med.att)

输出:

     [,1] [,2] [,3] [,4]
[1,] -0.1 -0.8  0.0  2.1
[2,]  0.0  1.8 -1.5  0.0
[3,]  3.1  0.0  2.4 -4.1

使用 scale 函数对 R 矩阵中的值进行归一化

矩阵数据归一化的另一个有用函数是 scale,它将输入矩阵的每一列除以来自名为 - scale 的第三个参数的相应值。请注意,scale 采用用于列居中的 center 参数。在这种情况下,我们将 FALSE 分配给后一个参数,表示不需要进行列居中。colSums 函数用于计算输入矩阵每一列的总和,并将其作为 scale 参数传递。

require(stats)

v1 <- c(1.1, 1.2, 4.3, 1.3, 3.9, 2.1, 5.3, 3.8, 7.7, 8.8, 6.7, 2.6)
m1 <- matrix(v1, ncol = 4)

c1 <- colSums(m1)
scale(m1, center = FALSE, scale = c1)

输出:

          [,1]      [,2]      [,3]      [,4]
[1,] 0.1666667 0.1780822 0.3154762 0.4861878
[2,] 0.1818182 0.5342466 0.2261905 0.3701657
[3,] 0.6515152 0.2876712 0.4583333 0.1436464
attr(,"scaled:scale")
[1]  6.6  7.3 16.8 18.1

转载请发邮件至 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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便