【问题标题】:Syntax problem with Inputs and SQLDF libraryInputs 和 SQLDF 库的语法问题
【发布时间】:2019-02-21 03:58:47
【问题描述】:

我在 RShiny 中遇到了语法问题。

如果我有一些这样的输入:

insertUI(
        selector = "#pesquisa",
        where = "afterEnd",
        ui = selectInput(
          "grau",
          label = "Grau:",
          choices = df$GRAU
        )
      )

如何使用 SQLDF 处理数据? 我正在尝试这个:

test <- sqldf('select something
                    from my_df
                    where something = (input$grau)
                    ')

我的代码有错误,但我找不到。

我必须将我选择的选项放在 WHERE 条件的 "grau" 输入中。

谢谢!

附言:

库(“sqldf”)

数据库:甲骨文

【问题讨论】:

  • input$grau 不是 SQL。 sqldf 支持 4 个后端,但 Oracle 不是其中之一。查看 sqldf github 页面并在该页面上搜索 fn$ 以查看如何在 SQL 字符串中插入字符串的示例。
  • 我的 DF 已经更新,它被称为“my_df”。我想使用 SQLDF 使用我的输入值制作过滤器并创建另一个名为“test”的 DF。我认为它不会提醒Oracle数据库

标签: r


【解决方案1】:

由于 sqldf() 的查询参数是字符串,所以不能直接传入变量。为了解决这个问题,您可以使用 sprintf() 函数,如下所示:

test <- sqldf(sprintf("select something
                from my_df
                where something = '%s'
                ",input$grau))

在此示例中,sprintf() 将“%s”替换为 input$grau 变量的值。然后,sqldf() 可以查找等于该变量值的位置,而不是查找字符串 'input$grau'。

如果可行,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    相关资源
    最近更新 更多