[英]How to get descriptive table for both continuous and categorical variables?
我想以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方式显示该信息,请提供您的解决方案。
这是一种为数字和因子列创建单独的汇总表的编程方式。 请注意,这不会按照您的要求记录表中的NA,但会像您一样忽略NA以计算摘要统计信息。 无论如何,这是一个起点。 在这里,您可以组合表格并根据需要格式化标题。
如果将此代码编织到带有HTML输出的RMarkdown文档中, kable
将自动生成html表,而css将使用水平规则很好地格式化该表,如下图所示。 请注意, booktabs
还有一个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)
我发现r包table1
我的要求。 这是一个代码:
library(table1)
data("ToothGrowth")
df<-ToothGrowth
df$len[2]<-NA
df$supp[5]<-NA
table1(reformulate(colnames(df)), data=df)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.