【问题标题】:Is there a way in R to create summary statistics table from a list of dataR中有没有办法从数据列表中创建汇总统计表
【发布时间】:2021-01-01 21:08:00
【问题描述】:

我正在尝试使用 table1::table1 函数制作我的数据汇总表。

我可以让下面的代码按预期工作。

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))

有没有人有任何建议或知道更好的方法来实现这一点?

【问题讨论】:

    标签: r list statistics summary


    【解决方案1】:

    我们可以使用transpose 来自purrrflattenunlistlist 元素作为list 的3 个

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

    注意:DF 是 OP 帖子中的第二个数据集

    现在,我们使用table1 进行测试

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

    -输出


    如果我们需要创建一个两列的表,请将向量的listlist 转换为单个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)
    

    -输出

    【讨论】:

    • 谢谢,但我希望将列表 1 作为一列,将列表 2 作为另一列
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 2020-05-07
    • 2021-03-25
    • 1970-01-01
    • 2014-02-01
    • 2019-04-24
    相关资源
    最近更新 更多