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

Pra*_*han 3 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)
Run Code Online (Sandbox Code Playgroud)

有什么解决方法可以让我可以按原样使用列名称吗?

Vin*_*ynd 5

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

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

  • 将名称放在双引号中: `sqldf( 'SELECT "Company.1" FROM test' )` 。这也有效:`sqldf('SELECT [Company.1] FROM test')` (8认同)
  • 一年后添加。请注意,最新版本的 RSQLite 不再用下划线替换点。 (4认同)
  • @G.Grothendieck 那么如何处理这种情况呢? (2认同)