Я нахожусь в процессе создания приложения для скрининга Shiny, которое позволило бы пользователям вводить команды R, такие как filter
и mutate
, на заранее заданном кадре данных.
Лично я думаю, что наиболее удобный способ сделать это - создать пустой столбец данных, содержащий параметры скрининга, где пользователи могут вводить такие команды, как filter(mpg >= 21)
или mutate(cyl_sq = cyl^2)
, используя набор данных mtcars
какпример.
Простое приложение для отображения предполагаемой функциональности:
library(shiny)
library(shinydashboard)
library(DT)
library(dplyr)
# Header ------------------------------------------------
header <- dashboardHeader(title = "Example Screening")
# Sidebar ------------------------------------------------
sidebar <- dashboardSidebar()
# Body ------------------------------------------------
body <-
dashboardBody(
fluidRow(
column(6,h3("Screening Parameters")),
column(6,h3("Filtered/Modified Results"))),
fluidRow(
column(6,DT::dataTableOutput("screening_params")),
column(6,DT::dataTableOutput("filtered_results")))
)
# APP ------------------------------------------------
shinyApp(ui <- dashboardPage(
header,
sidebar,
body
),
# Server ----------------------------------------------------------
shinyServer(function(input,output){
output$screening_params <- renderDataTable({
tibble(params = c("filter(mpg >= 21)",
"mutate(cyl_sq = cyl^2)",
rep_len(NA_character_,8))) %>%
DT::datatable(rownames = F,
editable = T)
})
output$filtered_results <- renderDataTable({
mtcars %>%
# input$screening_params
DT::datatable()
})
}))
Я был бы открыт для использования DT
или rhandsontable
или любой альтернативы, которую кто-то можетдумать о.К сожалению, не похоже, что вы можете получить отредактированные значения таблицы в DT
, но, надеюсь, это хороший пример того, что мне нужно.
Я перепробовал каждую комбинацию предложений и картографических функций, которые я могу придумать, но безрезультатно.
У кого-нибудь есть идеи?