J'essaie d'imprimer une table en knitr à partir d'un bloc de données en utilisant xtable. Le tableau de l'exemple ci-dessous a les dimensions 3x7 mais la troisième ligne n'a qu'une seule valeur, dans la deuxième colonne. Les autres cellules de la troisième rangée sont "NA".
Lorsque je compile le document, existe-t-il un moyen d'empêcher Knitr d'imprimer les NA de la troisième ligne, donc au lieu de NA, j'ai juste un espace vide?
Il semble que cela devrait être une solution simple mais je ne peux pas trouver où/comment cacher les NA. Est-ce un changement que je dois apporter au bloc de données ou est-ce une option xtable ou knitr que je dois changer?
Exemple de code knitr:
\documentclass{article}
<< data1, echo=FALSE, warning=FALSE, message=FALSE >>=
require(xtable)
FY.2014 <- 0.019
FY.2015 <- ((7000) - (6925.9)) / (6925.9)
FY.2016 <- ((8000) - (7000)) / (7000)
FY.2017 <- ((9000) - (8000)) / (8000)
FY.2018 <- ((10000) - (9000)) / (9000)
FY.2019 <- ((11000) - (10000)) / (10000)
PC <- data.frame(FY.2014, FY.2015, FY.2016, FY.2017, FY.2018, FY.2019)
PC.1 <- paste(round(PC*100, digits=1), "%", sep="")
FY.2014 <- 130.1
FY.2015 <- 7000 - 6925.9
FY.2016 <- 8000 - 7000
FY.2017 <- 9000 - 8000
FY.2018 <- 10000 - 9000
FY.2019 <- 11000 - 10000
AB <- data.frame(FY.2014, FY.2015, FY.2016, FY.2017, FY.2018, FY.2019)
AB.1 <- paste(round(AB , digits = 2))
FY.2014 <- as.numeric(c(""))
FY.2015 <- 7242.9
FY.2016 <- as.numeric(c(""))
FY.2017 <- as.numeric(c(""))
FY.2018 <- as.numeric(c(""))
FY.2019 <- as.numeric(c(""))
PF <- data.frame(FY.2014, FY.2015, FY.2016, FY.2017, FY.2018, FY.2019)
PF.1 <- paste(round(PF , digits = 2))
FTable <- rbind( PC.1, AB.1, PF.1)
rownames(FTable) <- c( 'Percent Change from the Previous Year',
'Absolute Change from Previous Year',
'December CY13 Forecast')
colnames(FTable) <- c( 'FY 2014', 'FY 2015', 'FY 2016', 'FY 2017', 'FY 2018', 'FY 2019')
@
\begin{document}
<<Table 1 , echo=FALSE, eval=TRUE, results='asis', fig.width = 5, fig.height = 2, message=FALSE, fig.align='center', warning=FALSE>>=
xFTable <- xtable(FTable, big.mark=",")
print(xFTable)
@
\end{document}
Vous pouvez définir l'option knitr knitr.kable.na = '' '' pour les blancs ou tout autre caractère souhaité.
```{r echo=FALSE, results='asis'}
options(knitr.kable.NA = '')
knitr::kable(lowerTri, digits=2)
```
L'astuce que j'utilise est un peu brutale, mais elle semble fonctionner (dans mes cas d'utilisation, c'est-à-dire):
out <- knitr::kable(...)
cat(gsub('\\bNA\\b', ' ', out), sep='\n')