我想將HTML小部件(如formattable(來自格式表包))放在通過RMarkdown生成的HTML頁面中。我需要從for循環中生成小部件。我怎樣才能做到這一點?無論有沒有print()
,兩者都不起作用。在R markdown文檔的循環中生成格式表小部件
這是一個示例代碼(部分地從formattable homepage截取):
---
title: "formattable example loop"
output: html_document
---
```{r}
library(formattable)
df <- data.frame(
id = 1:10,
name = c("Bob", "Ashley", "James", "David", "Jenny",
"Hans", "Leo", "John", "Emily", "Lee"),
age = c(28, 27, 30, 28, 29, 29, 27, 27, 31, 30),
grade = c("C", "A", "A", "C", "B", "B", "B", "A", "C", "C"),
test1_score = c(8.9, 9.5, 9.6, 8.9, 9.1, 9.3, 9.3, 9.9, 8.5, 8.6),
test2_score = c(9.1, 9.1, 9.2, 9.1, 8.9, 8.5, 9.2, 9.3, 9.1, 8.8),
final_score = c(9, 9.3, 9.4, 9, 9, 8.9, 9.25, 9.6, 8.8, 8.7),
registered = c(TRUE, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE),
stringsAsFactors = FALSE)
for (i in 1: 10){
print(formattable(df, list(
age = color_tile("white", "orange"),
grade = formatter("span",
style = x ~ ifelse(x == "A", style(color = "green", font.weight = "bold"), NA)),
test1_score = color_bar("pink", 0.2),
test2_score = color_bar("pink", 0.2),
final_score = formatter("span",
style = x ~ style(color = ifelse(rank(-x) <= 3, "green", "gray")),
x ~ sprintf("%.2f (rank: %02d)", x, rank(-x))),
registered = formatter("span",
style = x ~ style(color = ifelse(x, "green", "red")),
x ~ icontext(ifelse(x, "ok", "remove"), ifelse(x, "Yes", "No")))
)))
}
```
結果應該是這formattable在html_document十倍。
嗨RDATA,你有沒有得到這工作? – Chuck
@chuckM我認爲當時我被另一個項目分散了注意力,我沒有完成這個項目。 – rdatasculptor
悲傷的臉:(謝謝你的迴應 – Chuck