wilcox.test不起作用

时间:2018-04-15 10:44:39

标签: r shiny

我正在努力建立一个数据浏览器'闪亮的应用程序,包含DataTables,ggplot2图表和wilcox.test结果。我似乎无法使wilcox.test工作。

在闪亮的应用程序之外,事情可以正常运行:

dat <- data.frame(outcome=sample(c("died","survived",NA), 20, TRUE),
       cntr=sample(c("hospa","hospb"), 20, TRUE), 
       s=rnorm(20), 
       t=rnorm(20), stringsAsFactors=FALSE)     

wilcox.test(dat$s ~ dat$outcome)

结果:

  

Wilcoxon秩和检验

     

数据:dat $ s by dat $ outcome   W = 25,p值= 0.3301   备选假设:真正的位置偏移不等于0

在闪亮的应用程序中,下面的代码给出了一个错误:分组因子&gt;必须有两个级别&#39;。 (图表和表格工作正常;为清楚起见,我省略了这些。)

    library(shiny)
    library(dplyr)

    dat <- data.frame(outcome=sample(c("died","survived",NA), 20, TRUE),
       cntr=sample(c("hospa","hospb"), 20, TRUE), 
       s=rnorm(20), 
       t=rnorm(20), stringsAsFactors=FALSE)

    ui <- navbarPage(
          sidebarLayout(
            sidebarPanel(
             selectInput(inputId = "y", 
              label = "Y-axis:",
              choices = c("s"="s", "t"="t"), 
              selected = "s"),
             selectInput(inputId = "z", 
              label = "Color by:",
              choices = c("outcome", "cntr"),
              selected = "outcome")
                  ),

            mainPanel(
             tabsetPanel(id="tabspanel", type = "tabs",
              tabPanel(title = "Wilcox"),
              h4(textOutput(outputId = "p")))
                   )
                  )
                 )

    server <- function(input, output, session) {
                 df <- reactive({
                              data.frame(input$y, input$z)
                          })

                 output$p <- renderText({
                                 wilcox.test(df()[,1] ~ df()[,2])
                                    })

                                              }

    shinyApp(ui=ui, server=server)

如果代码被重写:

    wilcox.test(dat$s, dat$outcome)

然后错误是&#39;错误:&#39; x&#39;必须是数字&#39;。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您遇到的问题是该行

mkdir build
cd build
cmake ..
cmake --build . --config Release
sudo make install
sudo ldconfig

被翻译成类似

的内容
data.frame(input$y, input$z)

不能由data.frame("s", "outcome") 合理地处理。您应该使用以下代码

wicox.text

还有其他一些小问题。请参阅下面的代码以获得完整的修复。

data.frame(dat[[input$y]], dat[[input$z]])

答案 1 :(得分:0)

格雷戈尔的猜测非常明显;来自服务器代码的以下代码段:

if(cmd === `${prefix}list`) {
    var i = 0;

    let embed = new Discord.RichEmbed()
      .addField("List", "Content");

    let anotherembed = new Discord.RichEmbed()
      .addField("Message", "List has been completed!");

    return message.channel.send(embed);

    do {
      message.channel.send(anotherembed + 1);
    }
    while (i !== 0) && (reaction.emoji.name === "✅");

}