gpt4 book ai didi

r - 在矩阵上使用带有均值函数的 mapply

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

我希望计算矩阵的每一列(或行)中相邻值的平均值(例如 [1,1] 和 [2,1]、[2,1] 和 [3,1]、[3, 1] 和 [4,1]) 并将其应用于所有列。

我尝试使用 mapply 函数(以避免使用 for 循环),计算每列中前 2 个值的平均值,并计划将其逐行应用于整个矩阵。但是,如果我尝试对值求和而不是对均值函数求和,似乎可以使用 mapply 。

请参阅下面的示例:

x <- matrix(c(NA,rnorm(28),NA), nrow=6, ncol=5)
print(x)
[,1] [,2] [,3] [,4] [,5]
[1,] NA -0.6557176 1.7741320 0.3667700 -0.5548408
[2,] 0.14001643 0.2521062 -0.1295084 -0.4272368 0.7598425
[3,] 0.32123196 0.5736409 0.8618268 2.1535191 0.4686728
[4,] 0.06573949 -1.2101965 -0.4308219 -0.2624877 -0.3751350
[5,] -0.66247996 1.2743463 1.6044236 1.2004990 -0.3283678
[6,] 1.05005260 1.2264607 3.2347421 -0.8113528 NA

mapply(sum, x[1,], x[2,])
[1] NA -0.40361136 1.64462358 -0.06046682 0.20500169
# gives the sum of the input of rows 1 and 2 for each column, as expected

mapply(mean, x[1,], x[2,])
[1] NA -0.6557176 1.7741320 0.3667700 -0.5548408
# gives the actual values across row 1

使用均值函数时,输出似乎是第一行的值。我怀疑问题在于索引正确的输入值。

最佳答案

您可以使用:

library(zoo)
apply(x, 2, function(x) rollapply(x, 2, mean))

关于r - 在矩阵上使用带有均值函数的 mapply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29825381/

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