1
我试图创建一个简单的应用程序,它通过一个因子的级别绘制连续变量的平均值。 用户选择几个因素中的一个进行分组,并选择连续变量进行平均。该应用程序应该使用ggplot显示该图。很容易让这个功能在闪亮的环境下工作,但我正在努力让它在应用程序中运行。 我知道问题在于我对NSE和SE的理解不够,但是在查看几个小时的文档并测试各种版本之后,这是我能想到的最好的。这似乎是一个常见问题,但我看不到有关堆栈溢出问题的答案。
我使用泰坦尼克数据集作为一个例子 我得到以下:
警告在mean.default(输入$ ContVar):参数不是数字或 逻辑:返回NA 除了错误,平均值不会在情节呈现时发生变化。
library(shiny)
library(dplyr)
library(ggplot2)
Titan <- as.data.frame(Titanic)
Titan <- mutate(Titan, Freq2 = Freq +3)
shinyApp(ui = basicPage(selectInput("FactVar", "Factor", choices = names(Titan)[1:4]), selectInput("ContVar", "Cont Variable", choices = names(Titan)[5:6]), plotOutput("surv")), server = function(input, output) {
output$surv <- renderPlot({
Titan %>%
group_by_(~input$FactVar) %>%
summarize_(MeanFreq = ~ mean(input$ContVar))%>%
ggplot(aes_(x=~ MeanFreq, y = input$FactVar))+geom_point()
})
})
也许[这](https://stackoverflow.com/questions/25211916/passing-user-specifications-as-arguments-to-dplyr-within-shiny?rq=1)会有所帮助。 – SBista
从上面的链接我想出了这一点。 (平均值=平均值), list(col = as.symbol(input $ ContVar))))%>(% % ggplot(aes_(x =〜MeanFreq,y = input $ FactVar))+ geom_point()' – SBista
感谢SBista关注此问题。上面的解决方案在运行代码时没有解决问题。我会阅读上面的链接寻找线索。 – Reric