2016-08-08 56 views
2

https://cran.r-project.org/web/packages/formattable/formattable.pdfBefehl für den Export/Tabelle mit formatierbare Paket in R die formatierbare Paket mit auf ein paar gut aussehende Tabellen in R. machen Ich versuche, die Tabellen als Bilder gespeichert werden (oder wirklich gemacht Speichern

Ich habe jedes Dateiformat), kann aber keinen funktionierenden Befehl finden. Mit der Funktion jpeg/png oder dev.copy werden leere Dokumente erstellt. Idealerweise möchte ich diese Tabellen in einer Schleife speichern können. Weiß jemand, wie das gemacht werden könnte?

Daten:

library(formattable) 
DF <- data.frame(Ticker=c("", "", "", "IBM", "AAPL", "MSFT"), 
       Name=c("Dow Jones", "S&P 500", "Technology", 
         "IBM", "Apple", "Microsoft"), 
       Value=accounting(c(15988.08, 1880.33, NA, 
            130.00, 97.05, 50.99)), 
       Change=percent(c(-0.0239, -0.0216, 0.021, 
            -0.0219, -0.0248, -0.0399))) 

formattable(DF, list(
    Name=formatter(
    "span", 
    style = x ~ ifelse(x == "Technology", 
         style(font.weight = "bold"), NA)), 
    Value = color_tile("white", "orange"), 
    Change = formatter(
    "span", 
    style = x ~ style(color = ifelse(x < 0 , "red", "green")), 
    x ~ icontext(ifelse(x < 0, "arrow-down", "arrow-up"), x))) 
) 
+0

Dies ähnelt einer Werkzeuganforderung, die geschlossen werden muss. Sie können dies vermeiden, indem Sie ein kleines reproduzierbares Beispiel (Daten und Code) hinzufügen, das Sie "imitieren" möchten. –

Antwort

3

So speichern Sie formatierbare Sie 'as.htmlwidget' verwenden können und Print es dann. Zunächst wird die nächste Funktion auszuführen:

library("htmltools") 
library("webshot")  

export_formattable <- function(f, file, width = "100%", height = NULL, 
           background = "white", delay = 0.2) 
    { 
     w <- as.htmlwidget(f, width = width, height = height) 
     path <- html_print(w, background = background, viewer = NULL) 
     url <- paste0("file:///", gsub("\\\\", "/", normalizePath(path))) 
     webshot(url, 
       file = file, 
       selector = ".formattable_widget", 
       delay = delay) 
    } 

(Quelle: https://github.com/renkun-ken/formattable/issues/26)

Dann in Ihrem Code die formatierbare auf eine Variable assing und verwendet, um die Funktion zu speichern.

FT <- formattable(DF, list(
    Name=formatter("span", 
       style = x ~ ifelse(x == "Technology", style(font.weight = "bold"), NA)), 
    Value = color_tile("white", "orange"), 
    Change = formatter("span", 
        style = x ~ style(color = ifelse(x < 0 , "red", "green")), 
        x ~ icontext(ifelse(x < 0, "arrow-down", "arrow-up"), x)))) 

export_formattable(FT,"FT.png") 

Mit freundlichen Grüßen.