3

我有一个数据框,其中一些列名的格式为 . 格式。例如: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)

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

4

3 回答 3

5

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

library(sqldf)
test <- data.frame( "Company.1" = 1:10 )
sqldf( 'SELECT Company_1 FROM test' )
于 2013-09-26T06:43:20.917 回答
1

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

data = sqldf("select Company_1 from test")
于 2014-12-30T11:19:34.697 回答
1

最新更新的解决方案在这里sqldf得到解答

我们只需要在单引号之间编写SQL语句,列名包括双引号之间的点或反引号/反引号可互换。

于 2015-05-20T14:59:50.107 回答