簡體   English   中英

如何獲得連續變量和分類變量的描述性表?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM