[英]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.