2015-08-04 5 views
5

Sto tentando di pubblicare un tavolo con 1000 separatori e non ho alcuna fortuna con esso. Ho seguito il link qui: Set global thousand separator on knitr ma non sto avendo molto successo.R Markdown Table 1000 separator

mio set di dati campione è qui: https://goo.gl/G7sZhr

Il codice RMarkdown è qui:

--- 
title: "Table Example" 
author: "Krishnan Viswanathan" 
date: "August 4, 2015" 
output: html_document 
--- 

caricare i dati

{r, results='asis', message = FALSE, tidy=TRUE} load("i75_from_flow.RData") library(data.table)

{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE} i75_from_flow <- i75_from_flow[order(-Tons),] knitr::kable(i75_from_flow)

Tuttavia, quando includo questo blocco di codice (knit_hook $ set) nel documento RMarkdown, ottengo errori.

```{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE} 
i75_from_flow <- i75_from_flow[order(-Tons),] 
knit_hooks$set(inline = function(x) { 
prettyNum(x, big.mark=",") 
}) 
knitr::kable(i75_from_flow) 
``` 

Errore:

# object knit_hooks not found. 

Eventuali approfondimenti su quello che sto facendo male e come risolvere questo problema è molto apprezzato.

Grazie,

Krishnan

risposta

3

Cosa succede ad usare pander con il mazzo di opzioni per mettere a punto il vostro markdown table:

> pander::pander(i75_from_flow, big.mark = ',') 

---------------------------- 
ORIGFIPS TERMFIPS Tons 
---------- ---------- ------ 
    12,023  12,117 5,891 

    12,119  12,105 4,959 

    12,001  12,057 3,585 

    12,001  12,113 3,083 

    12,047  12,047 1,517 
---------------------------- 
+0

Grazie per l'intuizione. Questo ha funzionato. – Krishnan

2

La ragione per cui i knit_hooks oggetto non viene trovato è che si sia è necessario caricare il pacchetto knitr o utilizzare il prefisso knitr:: per impostare le opzioni knit_hooks. Per esempio:

knitr::knit_hooks$set(inline = function(x) { 
prettyNum(x, big.mark=",") 
}) 
2

Il metodo più semplice è quello di utilizzare gli argomenti di formato della funzione kable() stessa, dove è possibile specificare il grande punto numero in questo modo:

kable(df, format.args = list(big.mark = ",")) 

Così il vostro esempio sarà simile:

```{r, results='asis', echo=FALSE,message = FALSE, tidy=TRUE} 

i75_from_flow <- i75_from_flow[order(-Tons),] 
knitr::kable(i75_from_flow, format.args = list(big.mark = ",")) 
``` 

senza necessità di agganci.