如何解决将R中向量的某些元素相乘
我有一个带整数的矢量[1:360],需要查找30个元素的第一组,第二组...第十二组的乘积。最终,我需要一个函数,该函数为我提供所有十二个30个元素间隔的乘积的矢量[1:12]。 我对R相当陌生,并且在这个问题上停留了太长时间。
解决方法
一种简单的方法是将向量转换为30行矩阵并获得每一列的乘积。
在没有可复制的示例的情况下,让我们使用从正态分布中得出的360个数字的向量进行构建:
set.seed(69)
vec <- rnorm(360)
只需执行vec
,就可以将matrix(vec,nrow = 30)
变成30 * 12的矩阵,它将按列填充矩阵。然后,通过使用apply
将函数prob
应用于每一列来获得每一列的乘积。
apply(matrix(vec,nrow = 30),2,prod)
#> [1] -6.253460e-09 -4.413086e-09 -1.332389e-10 1.041448e-08 -1.779489e-08 1.255979e-10
#> [7] 3.463687e-13 -6.265196e-12 8.300651e-04 -1.041469e-10 4.256378e-09 1.439522e-09
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。