我想获取每列减去其平均值的数据。 首先,我计算每列的平均值 我的数据名为m
public function render($request, Exception $e)
{
if ($e instanceof \Symfony\Component\HttpKernel\Exception\TooManyRequestsHttpException) {
return response('Too many requests. Slow your roll!');
}
return parent::render($request, $e);
}
所以最后的答案是通过列的减去平均值得出的。 我想减去每一行。我怎么能得到这个?
答案 0 :(得分:2)
首先,让我们使用<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="0">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<div class="container1"></div>
获取矩阵colMeans(m)
的列方式。然后我们使用m
:
sweep
其中sweep(m, 2, colMeans(m))
指定边距(我们想要逐列操作,而在2D索引中,第二个索引用于列)。默认情况下,2
执行sweep
,因此在上面我们从矩阵中减去列均值,即以矩阵为中心。
同样,如果我们想从所有行中减去行均值,我们可以使用:
FUN = "-"
您也可以将sweep(m, 1, rowMeans(m))
参数设置为其他功能。 FUN
的另一个常见用途是用于列/行重新缩放,您可以在其中阅读How to rescale my matrix by column or row以获取更多信息。
其他答案中提到的函数sweep
仅用 进行逐列操作。常见的用途是标准化所有矩阵列。我们可以将scale
设置为仅执行列居中。
scale = FALSE
只是scale
的包装函数,您可以通过检查sweep
的源代码来验证:
sweep.default
阅读if (center) {
center <- colMeans(x, na.rm = TRUE)
x <- sweep(x, 2L, center, check.margin = FALSE)
}
if (scale) {
scale <- apply(x, 2L, f)
x <- sweep(x, 2L, scale, "/", check.margin = FALSE)
}
,?sweep
,?scale
了解有关这些功能的更多信息。
答案 1 :(得分:0)
你可以通过这个得到相同的结果(没有缩放的z得分归一化):
scale(df, scale=FALSE)
angel distance
[1,] -1.34444444 -0.16111111
[2,] 1.35555556 0.24888889
[3,] 0.05555556 -0.01111111
[4,] -0.44444444 -0.01111111
[5,] 0.95555556 0.10888889
[6,] 2.25555556 0.40888889
[7,] -1.74444444 -0.32111111
[8,] -1.54444444 -0.30111111
[9,] 0.45555556 0.03888889