【问题标题】:Create output table to summarize data from multiple data-frames创建输出表以汇总来自多个数据框的数据
【发布时间】:2019-01-29 12:46:32
【问题描述】:

我正在尝试根据来自两个数据库的信息创建一个漂亮的表。

让我们以此为例:

row.namess <- c( "s.size", "mean", "sd", "median", "minimum", "maximum")

AVAL1 <- c(250, 7.60, 0.50, 8.30, 5.30, 10.70) ## outcome  

AVAL2 <- c(254, 7.80, 0.68, 7.89, 5.30, 10.60) ## outcome

AGE1 <- c(254, 59.72, 9.08, 59.71, 29.00, 83.00) ## age

AGE2 <- c(254, 55.72, 10.01, 62.71, 31.00, 85.00) ## outcome

 (treatA <- data.frame(AVAL1, AGE1)); rownames(treatA ) <- row.namess

 (treatB <- data.frame(AVAL2, AGE2)); rownames(treatB ) <- row.namess

> treatA
        AVAL1   AGE1
s.size  250.0 254.00
mean      7.6  59.72
sd        0.5   9.08
median    8.3  59.71
minimum   5.3  29.00
maximum  10.7  83.00
> treatB
         AVAL2   AGE2
s.size  254.00 254.00
mean      7.80  55.72
sd        0.68  10.01
median    7.89  62.71
minimum   5.30  31.00
maximum  10.60  85.00

我的目标是找到一种方法来获得类似于此的漂亮表格(例如,作为图像或表格,我可以轻松地在 Word 中复制和使用):

                                 Treat A           Treat B          

Number of Subjects                  xxxx              xxxx             
Age (yrs)
  N                                 xxxx              xxxx                  
  Mean (SD)                           xx.x (xx.x)       xx.x (xx.x)       
  Median                              xx.x              xx.x              
  Min ; Max                           xx.x ; xxx.x      xx.x ; xxx.x      

Aval (%)
  N                                 xxxx              xxxx                  
  Mean (SD)                           xx.x (xx.x)       xx.x (xx.x)       
  Median                              xx.x              xx.x              
  Min ; Max                           xx.x ; xxx.x      xx.x ; xxx.x

每个列名对应一个特定的输出: s.size - N
均值 - 均值 标清 - 标清 中位数 - 中位数 最小值 - 最小值 最大值 - 最大值

有人知道这个问题的解决方案吗?

【问题讨论】:

  • 到目前为止你尝试了什么?
  • knitr 和 expss 包,但我无法获得这么好的输出
  • 我认为有一个名为broom 的包可以整理summarylm 等函数的输出
  • 但据我所知,它可以应用于模型输出和摘要。在这种情况下,我只有带有值的数据框(我可以绘制的输出)。我想不出一种方法来得到上面的输出
  • 您可能从 knitr 和其他软件包中获得较差输出的原因之一是您使用了行名称。在 R 的数据框中,变量是列,行是观察值或值。

标签: r dataframe


【解决方案1】:

Library stargazer 是一个很好的起点:

library(stargazer) stargazer(mtcars, type = "text", flip = TRUE)

你可以在这里看到更多:https://www.jakeruss.com/cheatsheets/stargazer/#the-default-summary-statistics-table

最好的!

【讨论】:

    猜你喜欢
    • 2016-06-08
    • 2023-03-23
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2021-03-25
    • 2016-10-12
    • 2015-07-18
    • 1970-01-01
    相关资源
    最近更新 更多