我正在創建一個動態的rmarkdown文檔。最終結果應該爲數據中的每個「分類」創建一個標籤。每個選項卡都應該有一個來自DT包的數據表,其中打印了數據。下面是我一直使用的代碼:爲什麼在rmarkdown循環時datatable不打印?
---
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)
}
```
通知我註釋掉直接呼叫到DataTable功能,那些沒有打印到rmarkdown。調用結果以書面形式生成帶有正確選項卡的html文檔,但其中沒有數據表。此外,數據表格實際上顯示在我的RStudio會話中,具有正確的子集。作爲一個測試,我嘗試使用knitr的kable函數實現目標,並且表格被打印在適當的選項卡中,不幸的是,kable不具備所需的全部功能。
+1我一直在尋找甚廣的一個簡單的解決方案,這是它。請注意,在第三個塊中,您可以鍵入'datatable(df [1,])',它仍然可以工作!我不知道@yihui是否知道爲什麼這是必要的 – bouncyball