2017-02-10 104 views
0

我有一個包含6個元素的列表,需要一些彙總統計信息。每個元素具有不同數量的觀察值,但都具有相同的9個變量。它們是使用分割創建的,因此每個元素都是不同的處理方式。我想創建一個表格:n,min,max,mean,SD,5th分位數和95分位數)。列表中包括所有需要的信息,包括地圖

我使用功能map()功能的purrr包,它與lapply()類似,但更容易調試。

來源:lapply(test,summary) 我能得到最小值,最大值,平均

n和SD我能得到下列要求:

mdl_summary= map(test,col_summary, sd) %>% 
    lapply(., setNames, nm=colnames %>% 
    map(.,t) %>% 
    lapply(., function(x) { 
     row.names(x)=deparse(substitute(sd)) 
     return (x) 
    }) 

與col_summary是另一個函數代碼:

col_summary <- function(df, fun) { 
    output <- vector("numeric", length(df)) 
    for (i in seq_along(df)) { 
    output[[i]] <- fun(df[[i]]) 
    } 
    output 
} 

但我不能得到分位數...

我也嘗試將mdl_summary歸納爲mdl_summary_fun,但不能讓rowname說它運行的函數。

mdl_summary_fun= function (x,f) 
    map(x,col_summary, f) %>% 
    lapply(., setNames, nm=colnames(mdl$Statistics[2:10])) %>% 
    map(.,t) %>% 
    lapply(., function(x) { 
    row.names(x)=deparse(substitute(f)) 
    return (x) 
    }) 
+0

列表?什麼類型的元素?引導?矩陣? Dataframes?請提供一些可複製示例的數據。在列表的幾個元素上使用'dput()'。有了一些數據,這個問題將在幾個小時前得到解答! – Parfait

回答

0

我不得不改變我創建的col_summary功能,包括額外的參數:元素的

col_summary <- function(df, fun, ...) { 
    output <- vector("numeric", length(df)) 
    for (i in seq_along(df)) { 
    output[[i]] <- fun(df[[i]], ...) 
    } 
    output 
}