简单的闪亮模块,数据框和列作为参数不起作用

时间:2017-09-20 21:51:11

标签: r shiny

我仍然想要了解闪亮的模块。下面是一个简单的例子,我无法工作:

# MODULE UI
bsc_test_UI <- function(id) {
  ns <- NS(id)
  textOutput(ns("test"))
}

# MODULE Server
bsc_test_OUT <- function(input, output, session, df, var) {
  output$test <- renderText({
    x <- mean(df$var, na.rm=T)
    t <- paste0(var, "=", x)
  })
}

# App ui 
ui <- fluidPage(
        bsc_test_UI("test_1"), 
        bsc_test_UI("test_2"), 
        bsc_test_UI("test_3")
        )

# App server
server <- function(input, output,session){  
  callModule(bsc_test_OUT, "test_1", mtcars, 'cyl')
  callModule(bsc_test_OUT, "test_2", mtcars, 'mpg')
  callModule(bsc_test_OUT, "test_3", iris, 'Sepal.Length')
}

# App
shinyApp(ui, server)

用于打印变量&#34; var&#34;的平均值。数据帧&#34; df&#34;,但它不起作用。

这是输出:

cyl=NA
mpg=NA
Sepal.Length=NA

我尝试将var名称放在没有quotqtions的情况下,但没有成功。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

只需将df$var替换为df[,var],就可以了

library(shiny)
# MODULE UI
bsc_test_UI <- function(id) {
  ns <- NS(id)
  textOutput(ns("test"))
}

# MODULE Server
bsc_test_OUT <- function(input, output, session, df, var) {
  output$test <- renderText({
    x <- mean(df[,var], na.rm=T)
    t <- paste0(var, "=", x)
  })
}

# App ui 
ui <- fluidPage(
  bsc_test_UI("test_1"), 
  bsc_test_UI("test_2"), 
  bsc_test_UI("test_3")
)

# App server
server <- function(input, output,session){  
  callModule(bsc_test_OUT, "test_1", mtcars, 'cyl')
  callModule(bsc_test_OUT, "test_2", mtcars, 'mpg')
  callModule(bsc_test_OUT, "test_3", iris, 'Sepal.Length')
}

# App
shinyApp(ui, server)