我是 R 編程的新手,我制作了一個函式,該函式可以從我們插入的串列或向量中回傳一些基本統計資訊。當我想插入一個資料框時,問題就來了。
我要插入的資料框有 2 列;第一個是指一組(1 或 2),第二個是指以厘米為單位的顱骨寬度(數值)。我想分別取兩組的平均值,以便稍后我可以比較它們(1 和 2)、眾數、中位數、四分位數......(我在函式中的所有內容)。
我突然想到使用我所做的函式來插入串列或向量,然后對我進行分組,使用 tapply 函式但是它通過控制臺給了我一個錯誤,這個:
Error in tapply(archivo, archivo$`época histórica`, descriptive_statistics) :
arguments must have same length
在這里你有我做的功能和tapply:
descriptive_statistics = function(x){
result <- list(
mean(x), exp(mean(log(x))), median(x), modes(x),
(range(x)[2] - range(x)[1]), var(x), sqrt(var(x)), sqrt(var(x)) / mean(x)
)
names(result) <- c('Aritmetic mean', 'Geometric mean', 'Median', 'Mode', 'Range', 'Variance', 'Standard deviation', 'Pearsons coefficient of variation')
result
}
tapply(archivo, archivo$`época histórica`, descriptive_statistics)
我可以改進我的功能,以便它讓我輸入資料幀?或者我可以在 tapply 功能中做些什么來使它對我有用?有人可以幫我解決這個問題嗎?我也接受其他想法,我嘗試過使用聚合和匯總函式內部等,但它沒有給我我想要的統計資料,例如皮爾遜系數。
預先非常感謝您,問候
uj5u.com熱心網友回復:
在函式中傳遞資料幀列而不是完整的資料幀。您尚未共享資料,因此很難給出具體答案,但讓我們假設另一列名為col1。在這種情況下,你可以這樣做 -
tapply(archivo$col1, archivo$`época histórica`, descriptive_statistics)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/373016.html
上一篇:整理ggplot中的資料框軸標簽
