如何处理R中sqldf不支持的列名

时间:2013-09-26 05:13:40

标签: r sqldf

我有一个数据框,其中一些列名称是格式。格式。例如:Company.1 当我在sqldf函数中使用该列时会抛出错误

data=sqldf(select Company.1 from test)
Error in sqliteExecStatement(con, statement, bind.data) : 
RS-DBI driver: (error in statement: near ".1": syntax error)

任何解决方法,以便我可以按原样使用列名吗?

3 个答案:

答案 0 :(得分:4)

点在SQL中具有另一种含义(例如,将表名与列名分开)和 在将数据发送到SQLite之前,它被下划线替换。

library(sqldf)
test <- data.frame( "Company.1" = 1:10 )
sqldf( 'SELECT Company_1 FROM test' )

答案 1 :(得分:1)

此问题与您的列名称中的.有关,如果您将其更改为Company_1,则该问题有效:

data = sqldf("select Company_1 from test")

答案 2 :(得分:1)

sqldf的最新更新解决方案已获得回复here

  

我们只需要在单引号和。之间编写SQL语句   列名称包括双引号之间的点或   反对/反引号。