R - 从数据框创建列表并在降价中打印
R - create list from dataframe and print in markdown
这是我的数据框
dt <-
data.frame(
year = c(2018, 2019, 2020),
sales = c(123, 987, 852)
)
在我的markdown文档中我是这样打印数据的
datatable(
dt,
escape = F,
rownames = F,
filter = 'top',
options = list(
pageLength = 999,
dom = "t",
columnDefs = list(list(className = "dt-center", targets = "_all")),
ordering = T)
) %>%
formatCurrency(c("sales"), digits = 1)
我的实际数据框要大得多,我想按年拆分它并在单独的数据表中每年打印。另外我想为每个部分打印 h4 header。
我用这种方式试验了 lapply,但我无法在 markdown 中打印它,而且我不知道如何添加 header。
t_list <-
lapply(split(dt, dt$year), function(df) {
datatable(
df,
escape = F,
rownames = F,
filter = 'top',
options = list(
pageLength = 999,
dom = "t",
columnDefs = list(list(className = "dt-center", targets = "_all")),
ordering = T)
) %>%
formatCurrency(c("sales"), digits = 1)
})
你可以使用 htmltools::tagList
:
```{r}
library(DT)
t_list <-
lapply(split(dt, dt$year), function(df) {
year <- unique(df$year)
htmltools::tagList(htmltools::h4(year),datatable(
df,
escape = F,
rownames = F,
filter = 'top',
options = list(
pageLength = 999,
dom = "t",
columnDefs = list(list(className = "dt-center", targets = "_all")),
ordering = T)
) %>%
formatCurrency(c("sales"), digits = 1))
})
htmltools::tagList(t_list)
```
这是我的数据框
dt <-
data.frame(
year = c(2018, 2019, 2020),
sales = c(123, 987, 852)
)
在我的markdown文档中我是这样打印数据的
datatable(
dt,
escape = F,
rownames = F,
filter = 'top',
options = list(
pageLength = 999,
dom = "t",
columnDefs = list(list(className = "dt-center", targets = "_all")),
ordering = T)
) %>%
formatCurrency(c("sales"), digits = 1)
我的实际数据框要大得多,我想按年拆分它并在单独的数据表中每年打印。另外我想为每个部分打印 h4 header。
我用这种方式试验了 lapply,但我无法在 markdown 中打印它,而且我不知道如何添加 header。
t_list <-
lapply(split(dt, dt$year), function(df) {
datatable(
df,
escape = F,
rownames = F,
filter = 'top',
options = list(
pageLength = 999,
dom = "t",
columnDefs = list(list(className = "dt-center", targets = "_all")),
ordering = T)
) %>%
formatCurrency(c("sales"), digits = 1)
})
你可以使用 htmltools::tagList
:
```{r}
library(DT)
t_list <-
lapply(split(dt, dt$year), function(df) {
year <- unique(df$year)
htmltools::tagList(htmltools::h4(year),datatable(
df,
escape = F,
rownames = F,
filter = 'top',
options = list(
pageLength = 999,
dom = "t",
columnDefs = list(list(className = "dt-center", targets = "_all")),
ordering = T)
) %>%
formatCurrency(c("sales"), digits = 1))
})
htmltools::tagList(t_list)
```