下面是一個使用tibble
存儲函數的自變量以及所產生的HTML字符串的解決方案:
編輯:添加新列(百分比)
library(ggmosaic)
library(purrr)
library(tidyverse)
library(htmlTable)
library(magrittr)
library(scales)
data(happy)
# Use a subset of `happy` for the example
h <- happy %>% as_tibble %>% sample_n(100)
# create the function
make_html_table <- function(data, .name, .col_names) {
data %>%
table %>%
as.data.frame %>%
set_colnames(.col_names) %>%
as.data.frame %>%
mutate(percent = scales::percent(count/sum(count))) %>% # add the percent column
htmlTable(caption = .name)
}
# Apply the function and store the results in a tibble
tbl <-
h %>%
select_if(is.factor) %>%
{ tibble(NAME = names(.),
data = map(., ~.x)) } %>%
mutate(TABLE = map2(.x = data,
.y = NAME,
.f = make_html_table,
.col_names = c("levels", "count")))
# Check out the tables in the Viewer Pane (if you're using RStudio)
tbl %>% extract2("TABLE") %>% map(htmlTableWidget)
#> $happy
#>
#> $sex
#>
#> $marital
#>
#> $degree
#>
#> $finrela
#>
#> $health
下面是這個創建表的一個截圖:
謝謝,這是我想要的,但只是幾件事情。一,我似乎沒有htmlTableWidget?我試着做tbl%>%extract2%>%(「TABLE」)%>%map(htmlTable),它只顯示健康的html表,這是最後一個列表。另外,我可以使用tidyr :: unnest而不是extract2嗎? – Mike
對於「在Tibble中存儲結果」部分,此代碼中{}的用途是什麼?我沒有試過,它說「每個變量必須是1d原子向量或列表」。我不確定那是什麼意思? – Mike
最後,有沒有辦法將百分比添加到make_html_table函數中?同時擁有計數和百分比列是非常棒的。百分比是我所追求的!我還發布了另一個關於這個問題的問題太大聲笑 – Mike