gpt4 book ai didi

r - 为什么在 rmarkdown 中循环时数据表不打印?

转载 作者:行者123 更新时间:2023-12-02 14:33:10 25 4
gpt4 key购买 nike

我正在创建一个动态 rmarkdown 文档。最终结果应该为数据中的每个“分类”创建一个选项卡。每个选项卡都应该有一个来自 DT 包的数据表,其中包含打印的数据。以下是我一直使用的代码:

---
output: html_document
---

# Setup{.tabset}
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(knitr)
library(DT)
```

```{r data.setup}
set.seed = 1242
rows = 64
data.1 = runif(rows, 25, 75)
data.2 = runif(rows, .01, 1)
data.3 = runif(rows, 1, 10)
classification = c("A", "B", "C", "D")
df = data.frame(cbind(data.1 = data.1, data.2 = data.2, data.3 = data.3, classification = classification))
df$data.1 = as.numeric(df$data.1)
df$data.2 = as.numeric(df$data.2)
df$data.3 = as.numeric(df$data.3)
```

```{r results= 'asis'}
for(j in levels(df$classification)){
df.j = df[df$classification == j, ]
cat(paste("\n\n## Classification: ", j, "##\n"))
w = datatable(df.j)
#datatable(df.j)
print(w)
}
```

注意,我已经注释掉了对数据表函数的直接调用,这些调用没有打印到 rmarkdown。编写的调用结果会生成一个带有正确选项卡的 html 文档,但其中没有数据表。此外,数据表实际上以正确的子集显示在我的 RStudio session 中。作为测试,我尝试使用 knit 中的 kable 函数来实现目标,并且表格打印在适当的选项卡中,不幸的是,kable 不具备所需的所有功能。

最佳答案

这不是一个完整的答案,因为其中一些仍然让我困惑,但至少这足以让你在我尝试了解更多内容时继续前进。

---
output: html_document
---

# Setup{.tabset}
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(knitr)
library(DT)
```

```{r data.setup}
set.seed <- 1242
rows <- 64
data.1 <- runif(rows, 25, 75)
data.2 <- runif(rows, .01, 1)
data.3 <- runif(rows, 1, 10)
classification <- c("A", "B", "C", "D")
df <- data.frame(cbind(data.1 = data.1, data.2 = data.2, data.3 = data.3, classification = classification))
df$data.1 <- as.numeric(df$data.1)
df$data.2 <- as.numeric(df$data.2)
df$data.3 <- as.numeric(df$data.3)
```

```{r include = FALSE}
# Why, oh why do I need this chunk?
datatable(df)
```

```{r results = 'asis'}
for(j in unique(df$classification)){ # You were using level() here, so your for-loop never got off the ground
df.j <- df[df$classification == j, ]
cat(paste("\n\n## Classification: ", j, "##\n"))
print( htmltools::tagList(datatable(df.j)) )
}

需要第三 block 才能正常工作,我还不知道为什么。

关于r - 为什么在 rmarkdown 中循环时数据表不打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39732560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com