gpt4 book ai didi

arrays - 多维数组操作 R

转载 作者:行者123 更新时间:2023-12-02 09:59:44 24 4
gpt4 key购买 nike

很抱歉,我找不到一种方法来用 3 维数组中的每个 0 所在列的平均值替换它们。

谢谢。例如,假设我有这个数组 j

j
, , 1

[,1] [,2]
[1,] 0 6
[2,] 1 5
[3,] 2 2

, , 2

[,1] [,2]
[1,] 11 0
[2,] 14 12
[3,] 0 14

, , 3

[,1] [,2]
[1,] 19 22
[2,] 20 23
[3,] 21 24

我想要

j
, , 1

[,1] [,2]
[1,] 1 6
[2,] 1 5
[3,] 2 2

, , 2

[,1] [,2]
[1,] 11 26/3
[2,] 14 12
[3,] 25/3 14

, , 3

[,1] [,2]
[1,] 19 22
[2,] 20 23
[3,] 21 24

最佳答案

您可以使用apply来实现此目的。

从以下数据开始:

arr <- array(0:5,dim=c(4,3,2))

, , 1

[,1] [,2] [,3]
[1,] 0 4 2
[2,] 1 5 3
[3,] 2 0 4
[4,] 3 1 5

, , 2

[,1] [,2] [,3]
[1,] 0 4 2
[2,] 1 5 3
[3,] 2 0 4
[4,] 3 1 5

你可以这样做:

apply(arr, c(2,3),function(v) { v[v==0] <- mean(v); v})

这给出:

, , 1

[,1] [,2] [,3]
[1,] 1.5 4.0 2
[2,] 1.0 5.0 3
[3,] 2.0 2.5 4
[4,] 3.0 1.0 5

, , 2

[,1] [,2] [,3]
[1,] 1.5 4.0 2
[2,] 1.0 5.0 3
[3,] 2.0 2.5 4
[4,] 3.0 1.0 5

关于arrays - 多维数组操作 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549715/

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