我有4個已知方法和標準偏差的種羣。我想知道盛大的意思和盛大sd。大的意思顯然很容易計算,但R有一個方便的效用函數,weighted.mean()。標準差是否有類似的功能?現有函數結合R中的標準偏差?
The calculation is not complicated,但現有的函數會使我的代碼更清晰,更易於理解。
獎金問題,你用什麼工具來搜索這樣的功能?我知道它必須在那裏,但我做了很多搜索,找不到它。謝謝!
我有4個已知方法和標準偏差的種羣。我想知道盛大的意思和盛大sd。大的意思顯然很容易計算,但R有一個方便的效用函數,weighted.mean()。標準差是否有類似的功能?現有函數結合R中的標準偏差?
The calculation is not complicated,但現有的函數會使我的代碼更清晰,更易於理解。
獎金問題,你用什麼工具來搜索這樣的功能?我知道它必須在那裏,但我做了很多搜索,找不到它。謝謝!
人口是否不重疊?
library(fishmethods)
combinevar
例如在維基百科的例子將工作是這樣的:
xbar <- c(70,65)
s<-c(3,2)
n <- c(1,1)
combinevar(xbar,s,n)
和標準偏差將被SQRT(combinevar(XBAR,S,N)[2])
如果不想下載庫的功能如下:
combinevar <-
function (xbar = NULL, s_squared = NULL, n = NULL)
{
if (length(xbar) != length(s_squared) | length(xbar) != length(n) |
length(s_squared) != length(n))
stop("Vector lengths are different.")
sum_of_squares <- sum((n - 1) * s_squared + n * xbar^2)
grand_mean <- sum(n * xbar)/sum(n)
combined_var <- (sum_of_squares - sum(n) * grand_mean^2)/(sum(n) -
1)
return(c(grand_mean, combined_var))
}
我不知道具體的包還是fu nction的名字,但它似乎很容易從維基百科的頁面推出自己的功能。假設人羣中沒有重疊:
## N: vector of sizes
## M: vector of means
## S: vector of standard deviations
grand.mean <- function(M, N) {weighted.mean(M, N)}
grand.sd <- function(S, M, N) {sqrt(weighted.mean(S^2 + M^2, N) -
weighted.mean(M, N)^2)}
非常感謝這個答案flodel。在看維基百科的公式時,我不認爲我可以讓計算看起來像你一樣簡單。事實上,我可能只是使用這個,但AndresT的回覆對於其他人發現這個問題要更全面一些。謝謝! – 2012-02-10 15:30:58
關於您的搜索問題,** sos **包中的'findFn'是一個方便的工具。 – joran 2012-02-10 02:55:49
@AndresT,是的,人口是不重疊的。 – 2012-02-10 03:00:05
@joran謝謝,我不知道,我會開始尋找這種方式。我猜「標準偏差」將成爲R手冊中的一個熱門詞彙 – 2012-02-10 03:00:57