我有一个数据框,其中一些列名称是格式。格式。例如: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)
任何解决方法,以便我可以按原样使用列名吗?
答案 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语句 列名称包括双引号之间的点或 反对/反引号。