簡體   English   中英

在R中獲得mapply函數的均值

[英]Get mean on mapply function in r

我在這里有此代碼:

mat <- cbind(shape,scale_ima)
mapply(rweibull, 10, mat[,"shape"], mat[,"scale_ima"])

mapply函數遍歷mat矩陣上的每個條目,對於每個循環,從rweibull函數獲得一個包含10個條目的向量。 我需要找到向量的均值。

之后,我需要將每個均值存儲在一個新向量中,該怎么辦? 因此,對於矢量的每個均值,我需要從mapply中獲取數據,我需要將數據存儲在矢量中。

這不起作用:

mapply(mean(rweibull, 10, mat[,"shape"], mat[,"scale_ima"]))

您可以執行以下操作找到每個向量的均值並存儲這些均值。

 result<-mapply(rweibull, 10, mat[,"shape"], mat[,"scale_ima"])

 #get and store the means
 meanStorage<-apply(result,2, mean)

為了解釋為什么對mapply的調用不起作用,請查看mapply函數的參數。 第一個參數是一個函數,第二個至n(由...表示)參數是要傳遞給該函數的參數。 通過致電

mapply(mean(....))

您傳遞了均值函數以進行映射,但沒有任何要均值的參數。

不確定您的預期結果:

set.seed(42)
colMeans(mapply(rweibull, n = 10L, shape = mat[,"shape"], scale = mat[,"scale_ima"]))
#[1] 0.08762851 0.11618909 0.10013489 0.24263038 0.12706183 0.18069583
#[7] 0.10953056 0.39062035 0.24496276 0.23653724

要么

set.seed(42)
mapply(function(x,y) mean(rweibull(10, x,y)), mat[,"shape"], mat[,"scale_ima"])
#[1] 0.08762851 0.11618909 0.10013489 0.24263038 0.12706183 0.18069583
# [7] 0.10953056 0.39062035 0.24496276 0.23653724

數據

mat <- structure(c(0.953866743, 0.939544872, 0.88055226, 0.937567804, 
0.902443856, 0.969984293, 0.953468872, 0.929905045, 0.889375987, 
0.910115923, 0.152704576, 0.168592082, 0.13059434, 0.153850643, 
0.172734767, 0.162162429, 0.172533372, 0.160826152, 0.190843263, 
0.156289128), .Dim = c(10L, 2L), .Dimnames = list(NULL, c("shape", 
"scale_ima")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM