gpt4 book ai didi

r - 具有不同维度的数组乘法以在 R 中制作概率表

转载 作者:行者123 更新时间:2023-12-05 01:25:00 24 4
gpt4 key购买 nike

我有一个数组,想为每个维度为 1 和 2 的矩阵制作一个概率表。例如,考虑这个:

A <- array(1:12,c(2,2,3))
print(A)
, , 1

[,1] [,2]
[1,] 1 3
[2,] 2 4

, , 2

[,1] [,2]
[1,] 5 7
[2,] 6 8

, , 3

[,1] [,2]
[1,] 9 11
[2,] 10 12

我希望每个 2x2 矩阵都成为概率表,每个矩阵的总和为 1,即每个 2x2 矩阵除以其元素总和。为此,我运行了以下代码,首先求和,然后创建一个具有相同维度的数组。

Asum <- apply(A,3,sum)

B <- array(rep(Asum,each=length(A[,,1])),dim(A))

A/B
, , 1

[,1] [,2]
[1,] 0.1 0.3
[2,] 0.2 0.4

, , 2

[,1] [,2]
[1,] 0.1923077 0.2692308
[2,] 0.2307692 0.3076923

, , 3

[,1] [,2]
[1,] 0.2142857 0.2619048
[2,] 0.2380952 0.2857143

有更好的方法吗?

最佳答案

您可以使用proportions():

proportions(A, margin = 3)

, , 1

[,1] [,2]
[1,] 0.1 0.3
[2,] 0.2 0.4

, , 2

[,1] [,2]
[1,] 0.1923077 0.2692308
[2,] 0.2307692 0.3076923

, , 3

[,1] [,2]
[1,] 0.2142857 0.2619048
[2,] 0.2380952 0.2857143

关于r - 具有不同维度的数组乘法以在 R 中制作概率表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71013266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com