給出的檔案包含 8 個名為 data1、data2、...、data8 的資料幀。我需要對每個執行 t.test() 并將結果組織在一個表中。
t1 <- t.test(A ~ B, data1)
t2 <- t.test(A ~ B, data2)
.
.
.
t8 <- t.test(A ~ B, data8)
summary_table <- map_df(list(t1, t2, t3, t4, t5, t6, t7, t8), tidy)
有什么方法可以使用 list 或 lapply 來縮短此代碼?資料框名稱是重復的并且有一個模式,所以我也不想重復撰寫它。
uj5u.com熱心網友回復:
用于mget在 a 中加載資料,在with 上list回圈,應用并作為單個 data.frame回傳輸出,其中有一列用于標識原始資料inlistmap/lapplyt.testtidy.idmap
library(purrr)
library(broom)
mget(paste0("data", 1:8)) %>%
map_dfr(~ t.test(A ~ B, data = .x) %>%
tidy, .id = 'dataname')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526501.html
標籤:r数据框循环应用统计
上一篇:如何拆分抓取的文本并創建資料框?
