我創建了R代碼,它允許我轉換和分析數據,然後以表格的形式將結果輸出到PDF報告中。最近,我決定與不熟悉R的大學分享我的工作。因此,我想創建Shiny應用程序,以便他們在不安裝R的情況下使用我的作品。 Shiny應用程序將作爲上傳數據並下載報告的平臺。不幸的是,我無法將我的結果輸出到PDF中。使用用戶輸入文件生成PDF報告 - 閃亮
我閃亮的代碼看起來方式如下:
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)
而且我.Rnw
文件看起來如下:
\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}
顯然裝載data_set
不工作,我不知道如何前進。 現在我想輸出從我加載到Shiny中的數據創建的表格。
我真的很感謝你的幫助。
附註: csv文件是外部簡單的數據幀,包含填充數據的標題和列。
當R中coutputed他們看起來應該是這樣的:
$data001
A B C D E
X 10 30 50 70
Y 20 40 60 80
可能是因爲在閃亮data_set - 反應,所以儘量使用data_set_1 in .Rnw和'content = function(file){data_set_1 = data_set() out = knit2pdf('pdf_shell.Rnw',clean = TRUE) file.rename(out,file)#將pdf移動到文件以供下載 }' – Batanichek
@Batanichek非常感謝您的迴應,並且我能夠將值輸出爲PDF。我必須提高對閃亮的理解, –