我想以html格式获取数据框中所有变量的描述性表。我需要连续变量的均值和标准差。对于类别变量,每个类别的频率(绝对计数)和每个类别的百分比。另外,我还需要包含缺失值的计数。
让我们使用此数据:
data("ToothGrowth")
df<-ToothGrowth
df$len[2]<-NA
df$supp[5]<-NA
我想获取html格式的表格,该表格将如下所示:
----------------------------------------------------------------------
Variables N (missing) Mean (SD) / %
----------------------------------------------------------------------
len 59 (1) 18.9 (7.65)
supp
OJ 30 50%
VC 29 48.33%
NA 1 1.67%
dose 60 1.17 (0.629)
我还需要设置要显示的小数点后的位数。
如果您比提供解决方案更了解以更好的方式用html显示该信息的更好的变体。
答案 0 :(得分:1)
这是一种为数字和因子列创建单独的汇总表的编程方法。请注意,这不会按照您的要求记录表中的NA,但会像您一样忽略NA以计算摘要统计信息。无论如何,这是一个起点。在这里,您可以组合表格并根据需要格式化标题。
如果将此代码编织到带有HTML输出的RMarkdown文档中,kable
将自动生成html表,而css将使用水平规则很好地格式化该表,如下图所示。请注意,kable还有一个booktabs
选项,可以使像LaTeX booktabs软件包那样的表格更漂亮。否则,请参阅knitr :: kable的文档以获取选项。
library(dplyr)
library(tidyr)
library(knitr)
data("ToothGrowth")
df<-ToothGrowth
df$len[2]<-NA
df$supp[5]<-NA
numeric_cols <- dplyr::select_if(df, is.numeric) %>%
gather(key = "variable", value = "value") %>%
group_by(variable) %>%
summarize(count = n(),
mean = mean(value, na.rm = TRUE),
sd = sd(value, na.rm = TRUE))
factor_cols <- dplyr::select_if(df, is.factor) %>%
gather(key = "variable", value = "value") %>%
group_by(variable, value) %>%
summarize(count = n()) %>%
mutate(p = count / sum(count, na.rm = TRUE))
knitr::kable(numeric_cols)
knitr::kable(factor_cols)
答案 1 :(得分:0)
我发现r软件包table1
可以满足我的要求。这是一个代码:
library(table1)
data("ToothGrowth")
df<-ToothGrowth
df$len[2]<-NA
df$supp[5]<-NA
table1(reformulate(colnames(df)), data=df)