【问题标题】:R/Shiny error: non-numeric argument to binary operatorR/Shiny 错误:二进制运算符的非数字参数
【发布时间】:2018-01-20 23:24:59
【问题描述】:

我正在学习 Shiny,我正在尝试编写一个应用程序来以图形方式探索辛普森悖论。我首先在 R 中构建了绘图,并以可自定义的选项设置了开头。该图显示了正相关的数据,但可以将其分解为负相关的组。开头的选项包括有多少组、它们的间隔方式、是否显示分组/未分组的回归线等。请参阅工作中的simpson.R 脚本here

该应用的目的是让用户使用这些选项来使分组或多或少明显,并突出(或不突出)负相关性。

我的应用文件的完整代码位于github。我没有足够的声誉发布两个以上的链接,所以请在 repo 中找到 ui.Rserver.R

我似乎无法克服的错误是 non-numeric argument to binary operator 显然在这一行的某处:

anchors_x <- rep(seq(2, 2 + (input$number_of_groups - 1) * input$separation, 
                             by = input$separation)

还有

p <- ggplot(data = dfserver(), aes(x, y))

具体问题:

为什么 R 不将这些变量视为数字?

更一般地说:

我先用纯 R 脚本构建情节是聪明的吗?或者更典型的工作流程只是从一开始就在 Shiny 中构建东西?如果是这样,如果一个人无法进入环境来查看对象,如何在 Shiny 中调试/构建 R?或者有什么我不知道的方法可以访问ui.Rserver.R 中的对象?

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    input$number_of_groups 和朋友是一个字符串。

    试试

        ng = as.integer(input$number_of_groups)
        sep = as.integer(input$separation)
        ppg = as.integer(input$points_per_group)
        anchors_x <- rep(seq(2, 2 + (ng - 1) * sep, by = sep), ppg)
    

    下面还有类似的

    【讨论】:

    • 这成功了,谢谢!如果它不违反协议,我想把问题留得更久一点,以防有人对更一般的问题做出回应,但无论哪种方式,我都打算接受这个答案。
    猜你喜欢
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2015-10-09
    • 1970-01-01
    • 2016-07-23
    • 2016-11-15
    相关资源
    最近更新 更多