Bom dia, gente!
Tenho um código assim:
# Resultados:
## ação 1
```{r, echo=F}
as.htmlwidget(formattable(a,
formatos),width=360)
```
no meu report em Rmarkdown e roda liso.
Porém, tenho 22 ações para apresentar uma a uma.
Queria fazer um loop.
Daí, fiz assim (abaixo), e ele imprime as ações certinho, mas não imprime a tabela! Porque? Como faz?
# Resultados:
```{r, echo=F, results="asis"}
for (i in 1:nrow(a)
{
cat("## ação ",i,"\n")
as.htmlwidget(formattable(a[i,],
formatos),width=360)
}
```
Oi Pri!
Eu tive um problema parecido com esse mas com uma outra função. O que funcionou para mim foi dar um print na tabela. No seu caso o código ficaria assim:
for (i in 1:nrow(a)) {
cat("## ação ",i,"\n")
print(as.htmlwidget(formattable(a[i,],
formatos),width=360))
}
Espero que isso resolva seu problema!
1 curtida
Obrigada, Nicole!
Mas mesmo assim ele não imprime a tabela
Nicole, o que eu fiz: tirei o as.htmlwidgets (pois só precisava dele para definir o tamanho da tabela).
Vi que a função print() tem um argumento de tamanho, e deixei apenas
for (i in 1:nrow(a)) {
cat("## ação ",i,"\n")
print(formattable(a[i,],
formatos),width=360)
}
Deu certo!!!
Só tem uma coisa: ele faz apenas o primeiro item (i=1), depois imprime mais nada. hahahaha
Olha este site acho que deve resolver o seu problema.
Se não der certo, pensei em fazer algo assim:
lista <- list()
j <- 0
for (i in 1:nrow(a)) {
j <- j + 1
lista[[j]] <- shiny::h2(paste0("ação ",i,"\n"))
j <- j + 1
lista[[j]] <- as.htmlwidget(formattable(a[i,],
formatos),width=360)
j <- j + 1
lista[[j]] <- shiny::tags$br()
}
htmltools::tagList(lista)
1 curtida