使用数组(张量)进行逐元素计算
element-wise calculation with arrays (tensors)
我有一个 3 维数组 x
,想计算每个元素 w.r.t 的份额 a
。第三维:
我在 R 中尝试了以下方法,但由于“不一致的数组”(这当然有意义),这不起作用。
x <- array(
data = 1:8,
dim = c(2, 2, 2),
dimnames = list(i = c("i1", "i2"), j = c("j1", "j2"), k = c("k1", "k2")))
a <- x / apply(x, c(1, 2), sum)
所以我正在寻找一种执行张量计算的方法,我可以在其中指定执行除法的维度。这是 x
和我已经拥有的总和以及我想要的 a
(a
在这里显示为分数):
> x
, , k = k1
j
i j1 j2
i1 1 3
i2 2 4
, , k = k2
j
i j1 j2
i1 5 7
i2 6 8
> apply(x, c(1, 2), sum)
j
i j1 j2
i1 6 10
i2 8 12
> a
, , k = k1
j
i j1 j2
i1 1/6 3/10
i2 2/8 4/12
, , k = k2
j
i j1 j2
i1 5/6 7/10
i2 6/8 8/12
感谢任何提示!
尝试proportions
> proportions(x,1:2)
, , k = k1
j
i j1 j2
i1 0.1666667 0.3000000
i2 0.2500000 0.3333333
, , k = k2
j
i j1 j2
i1 0.8333333 0.7000000
i2 0.7500000 0.6666667
我有一个 3 维数组 x
,想计算每个元素 w.r.t 的份额 a
。第三维:
我在 R 中尝试了以下方法,但由于“不一致的数组”(这当然有意义),这不起作用。
x <- array(
data = 1:8,
dim = c(2, 2, 2),
dimnames = list(i = c("i1", "i2"), j = c("j1", "j2"), k = c("k1", "k2")))
a <- x / apply(x, c(1, 2), sum)
所以我正在寻找一种执行张量计算的方法,我可以在其中指定执行除法的维度。这是 x
和我已经拥有的总和以及我想要的 a
(a
在这里显示为分数):
> x
, , k = k1
j
i j1 j2
i1 1 3
i2 2 4
, , k = k2
j
i j1 j2
i1 5 7
i2 6 8
> apply(x, c(1, 2), sum)
j
i j1 j2
i1 6 10
i2 8 12
> a
, , k = k1
j
i j1 j2
i1 1/6 3/10
i2 2/8 4/12
, , k = k2
j
i j1 j2
i1 5/6 7/10
i2 6/8 8/12
感谢任何提示!
尝试proportions
> proportions(x,1:2)
, , k = k1
j
i j1 j2
i1 0.1666667 0.3000000
i2 0.2500000 0.3333333
, , k = k2
j
i j1 j2
i1 0.8333333 0.7000000
i2 0.7500000 0.6666667