我想應用一些包含可靠性測量(例如ICC或變異係數)的統計計算。雖然我可以單獨計算它們,但我還不熟悉R函數編程實踐,不需要太多的代碼重複即可直接執行多個計算。執行多個統計計算的函數式編程原理
考慮以下data.frame
例如包括五個不同的變量重複測量(T1, T2
)(Var1, ... Var5
):
set.seed(123)
df = data.frame(matrix(rnorm(100), nrow=10))
names(df) <- c("T1.Var1", "T1.Var2", "T1.Var3", "T1.Var4", "T1.Var5",
"T2.Var1", "T2.Var2", "T2.Var3", "T2.Var4", "T2.Var5")
如果我要計算每個變量,我可以的兩個重複測量之間的組內相關係數: 1)創建函數,返回:ICC,下界和上界的值:
calcula_ICC <- function(a, b) {
ICc <- ICC(matrix(c(a,b), ncol = 2))
icc <- ICc$results[[2]] [3]
lo <- ICc$results[[7]] [3]
up <- ICc$results[[8]] [3]
round(c(icc, lo, up),2)
}
和2)其應用到每個對應的變量如下:
calcula_ICC(df$T1.Var1, df$T2.Var1)
calcula_ICC(df$T1.Var2, df$T2.Var2)
calcula_ICC(df$T1.Var3, df$T2.Var3)
calcula_ICC(df$T1.Var4, df$T2.Var4)
calcula_ICC(df$T1.Var5, df$T2.Var5)
然後,我會對每個變量進行類似的其他統計計算,例如變異係數或重複測量之間的標準誤差。
但是,如何才能使用一些函數式編程原則呢?例如,我怎樣才能創建一個函數,將T1
和T2
上的每個對應變量以及所需的函數作爲參數?
看一看[掃帚(https://cran.r-project.org/web/packages/掃帚/ vignettes/broom.html) –
如果您將數據轉換爲整齊的格式,則此問題將更容易解決:https://stackoverflow.com/questions/12466493/reshaping-multiple-sets-of-measurement -columns寬幅 - 進入 - 單柱 –