R 中是否有一种方法可以从数据列表中创建摘要统计信息 table
Is there a way in R to create summary statistics table from a list of data
我正在尝试使用 table1::table1 函数对我的数据进行汇总 table。
我可以让下面的代码按预期工作。
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
和 flatten
或 unlist
中的 list
元素作为 3[= 的 list
28=]
library(purrr)
DF2 <- transpose(DF) %>%
map(flatten_dbl)
注意:DF
是 OP post
中的第二个数据集
现在,我们用 table1
进行测试
table1::table1(~A+B+C, data=DF2, overall = 'List 1')
-输出
如果我们需要创建一个两列 table,请将向量 list
中的 list
转换为单个 data.frame
,同时使用 names
外 list
元素
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)
-输出
我正在尝试使用 table1::table1 函数对我的数据进行汇总 table。
我可以让下面的代码按预期工作。
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
和 flatten
或 unlist
中的 list
元素作为 3[= 的 list
28=]
library(purrr)
DF2 <- transpose(DF) %>%
map(flatten_dbl)
注意:DF
是 OP post
现在,我们用 table1
table1::table1(~A+B+C, data=DF2, overall = 'List 1')
-输出
如果我们需要创建一个两列 table,请将向量 list
中的 list
转换为单个 data.frame
,同时使用 names
外 list
元素
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)
-输出