내 Rmarkdown 문서에 data.table
을 전달하여 테이블을 정렬하고 상위 5 개의 정렬 된 항목을 인쇄 할 수있게하고 싶습니다."반응성"데이터를 R Markdown에 매개 변수로 전달하는 방법은 무엇입니까?
"Error : x는 data.frame 또는 data.table이어야합니다"라는 메시지가 계속 표시됩니다 (setorderv
). 나는 반응이 is.data.table
수표를 뒤엎고 있다고 의심한다.
단순히 데이터 복사본을 Rmd 문서로 전달하는 방법은 무엇입니까? 그리고 반응성 포장지를 제거 하시겠습니까?
다음은 reactivity 및 downloadHandler 주식 예에서 자갈로 묶은 간단한 예입니다. 나는 관찰을 사용하여 제안한 this on SO을 보았습니다. 그러나 이것을 구현하는 방법을 모르겠습니다. 고마워, 이걸 좀 도와 줘.
RMARKDOWN는 - (RMD)에서 dt
이 params$
로 시작되지 않았다 -이 예를 고정 app.R
# SO test report
# mini example based on https://shiny.rstudio.com/gallery/reactivity.html
library(shiny)
library(datasets)
server <- function(input, output) {
datasetInput <- reactive({
switch(input$dataset,
"rock" = rock,
"pressure" = pressure,
"cars" = cars)
})
output$caption <- renderText({
input$caption
})
output$summary <- renderPrint({
dataset <- datasetInput()
summary(dataset)
})
output$view <- renderTable({
head(datasetInput(), n = input$obs)
})
# PROBLEM BIT WHERE I AM ADDING ON GALLERY EXAMPLE
# handler from https://stackoverflow.com/questions/37347463/generate-report-with-shiny-app-and
output$topreport <- downloadHandler(
filename = "topreport.html",
content = function(file) {
# Copy the report file to a temporary directory before processing it, in
# case we don't have write permissions to the current working dir (which
# can happen when deployed).
tempReport <- file.path(tempdir(), "SOtestreport.Rmd")
file.copy("SOtestreport.Rmd", tempReport, overwrite = TRUE)
# Set up parameters to pass to Rmd document
# TRIED THIS TOO
# my.dt <- as.data.table(datasetInput())
my.dt <- datasetInput()
my.params <- list(n = input$obs,
dt = my.dt,
top.field = names(my.dt)[1])
rmarkdown::render(tempReport, output_file = file,
params = my.params,
envir = new.env(parent = globalenv())
)
}
)