簡體   English   中英

R 中有沒有辦法從數據列表創建匯總統計表

[英]Is there a way in R to create summary statistics table from a list of data

我正在嘗試使用 table1::table1 function 制作我的數據匯總表。

我可以讓下面的代碼按預期工作。

DF = list('A' = rnorm(100, mean = 1),
          'B' = rnorm(100, mean = 2),
          'C' = rnorm(100, mean = 3))
table1::table1(~A+B+C, data=DF, overall = 'List 1')

我正在嘗試做與上面相同的事情,但相反,我有一個我想要組合的數據列表,並將列作為列表 1 和列表 2,與來自 A、B、C 的相同匯總統計數據作為行。

DF = NULL
DF[['List 1']] = list('A' = rnorm(100, mean = 1),
          'B' = rnorm(100, mean = 2),
          'C' = rnorm(100, mean = 3))

DF[['List 2']] = list('A' = rnorm(100, mean = 1),
          'B' = rnorm(100, mean = 2),
          'C' = rnorm(100, mean = 3))

有沒有人有任何建議或知道更好的方法來實現這一點?

我們可以使用purrr中的transpose並將list元素flattenunlist列出為 3 個list

library(purrr)
DF2 <- transpose(DF) %>% 
            map(flatten_dbl)

注意: DF是 OP 帖子中的第二個數據集

現在,我們用table1進行測試

table1::table1(~A+B+C, data=DF2, overall = 'List 1')

-輸出

在此處輸入圖像描述


如果我們需要創建一個兩列表,請將向量list list轉換為單個data.frame ,同時使用外部list元素的names創建列

new_DF <- do.call(rbind, Map(cbind, nm1 = names(DF), 
         lapply(DF, as.data.frame)))
row.names(new_DF) <- NULL

table1::table1(~ A + B + C |nm1, data = new_DF)

-輸出

在此處輸入圖像描述

暫無
暫無

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

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