【问题标题】:sqldf in R generating an ErrorR中的sqldf生成错误
【发布时间】:2019-01-13 23:09:51
【问题描述】:

我正在尝试使用以下命令合并 R 中的两个表:

library(gsubfn)
library(proto)
library(RSQLite)
library(sqldf)
sqldf("SELECT Gender, Pmu.try.Sat.Ltd, Online.Campus.Student, Residency,
           tutorial_avg_score
           FROM A JOIN B
           USING(userID)")

系统产生如下错误:

Error in result_create(conn@ptr, statement) : near ".": syntax error

谁能告诉我这里可能是什么问题?列名有点奇怪,但它们与我在提供的数据中的实际名称非常相似。 我看了以下问题: Error in rsqlite_send_query(conn@ptr, statement) : near "(": syntax error 但这对我也没有帮助。

在这方面寻求您的好意建议!

【问题讨论】:

  • Dot 是一个 SQL 运算符,因此如果您的列名称中带有点,则它们必须用双引号 "..." 或方括号 [...] 括起来
  • 感谢您的帮助,但“...”不起作用。相反,波浪号下方的 `` 起到了神奇的作用。方括号也可以正常工作,我不知道,再次感谢!
  • 双引号确实有效。也许您尝试在双引号内使用双引号。如果你这样做,你必须在外面使用单引号,或者使用反斜杠来转义它们。
  • 是的,你是对的。再次感谢您的及时帮助!

标签: r join merge sqldf rsqlite


【解决方案1】:

以下解决方案解决了我一直面临的错误:

sqldf('SELECT Gender, "Pmu.try.Sat.Ltd", "Online.Campus.Student", Residency,
       tutorial_avg_score
       FROM A JOIN B
       USING(userID)')

sqldf('SELECT Gender, `Pmu.try.Sat.Ltd`, `Online.Campus.Student`, Residency,
       tutorial_avg_score
       FROM A JOIN B
       USING(userID)')

sqldf('SELECT Gender, [Pmu.try.Sat.Ltd], [Online.Campus.Student], Residency,
       tutorial_avg_score
       FROM A JOIN B
       USING(userID)')

非常感谢@G。格洛腾迪克感谢您的好心人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2017-11-22
    • 2013-06-17
    相关资源
    最近更新 更多