Ich habe R-Code erstellt, mit dem ich Daten transformieren und analysieren und dann die Ergebnisse in Form von Tabellen in PDF-Bericht ausgeben kann. Vor kurzem habe ich beschlossen, meine Arbeit mit Colleges zu teilen, die mit R nicht vertraut sind. Deshalb möchte ich eine Shiny-App erstellen, die es ihnen ermöglicht, meine Arbeit zu nutzen, ohne R installiert zu haben. Die Shiny-App dient als Plattform zum Hochladen von Daten und zum anschließenden Herunterladen des Berichts. Leider kann ich meine Ergebnisse nicht als PDF ausgeben.Erstellen PDF-Bericht mit Benutzer-Eingabedateien - Shiny
My Shiny Code sieht folgendermaßen:
library(knitr)
ui <- fluidPage(
fluidRow(
column(3,
wellPanel(
fileInput(inputId = "files",
label = "Choose csv files",
accept=c('text/csv',
'text/comma-separated-values,text/plain',
'.csv'),
multiple = TRUE),
textInput('filename', 'File name', value = ''),
downloadButton('report', label = 'Download PDF')
)
)
)
)
server <- function(input, output) {
data_set <- reactive({if(!is.null(input$files)) {
max_table = length(input$files[,1])
lst <- list()
for(i in 1:length(input$files[,1])){
lst[[i]] <- read.csv(input$files[[i, 'datapath']], sep = ",", header = TRUE, skip = 4, dec = ".")
}
lst <- lapply(lst, function(x) xtable(x))}})
output$report = downloadHandler(
filename = reactive({paste0(input$filename,'.pdf')}),
content = function(file) {
out = knit2pdf('pdf_shell.Rnw', clean = TRUE)
file.rename(out, file) # move pdf to file for downloading
},
contentType = 'application/pdf'
)
}
shinyApp(ui = ui, server = server)
Und meine .Rnw
Datei sieht wie folgt aus:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{table}[H]
\begin{tabularx}
\textbf{Test Name:}& \Sexpr{input$filename} \\
\textbf{Date:}& \\
\end{tabularx}
\end{table}
<<echo = FALSE , message = F, >>=
data_set
@
\end{document}
Offensichtlich die data_set
Laden nicht funktioniert und ich habe keine Ahnung, wie sich vorwärts zu bewegen . Momentan möchte ich nur die Tabelle ausgeben, die aus den Daten besteht, die ich in den Shiny geladen habe.
Ich würde Ihre Hilfe wirklich schätzen.
Seitliche Anmerkung: Die CSV-Dateien sind extern einfache Datenrahmen bestehend aus Kopfzeilen und Spalten mit Daten gefüllt.
Wenn in R coutputed sollten sie so ähnlich aussehen:
$data001
A B C D E
X 10 30 50 70
Y 20 40 60 80
sein kann, weil in glänzenden DATA_SET einfach sein - reaktiv, so versuchen data_set_1 zu verwenden in .Rnw und 'content = function (Datei) {data_set_1 = data_set() out = strick2pdf ('pdf_shell.Rnw', sauber = TRUE) file.rename (out, datei) # move pdf in die datei zum herunterladen } ' – Batanichek
@Batanichek Vielen Dank für Ihre Antwort es funktionierte und ich bin in der Lage, Werte in PDF auszugeben. Ich muss mein Verständnis von glänzend verbessern, –