2013-09-26 1 views
2

У меня есть кадр данных, где некоторые имена столбцов имеют формат. формат. Для экс: Company.1 , когда я использую этот столбец в функции sqldf он выдает ошибкуКак обрабатывать имена столбцов, не поддерживаемые sqldf в R

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

Точка имеет другое значение в SQL (например, разделяя имя таблицы от имени столбца), а заменяется символом подчеркивания перед отправкой данных в SQLite.

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

Добавлено год спустя. Обратите внимание, что последняя версия RSQLite больше не заменяет точки символом подчеркивания. –

+2

@ G.Grothendieck как справиться с такой ситуацией тогда? – user4786271

+6

Поместите это имя в двойные кавычки: 'sqldf ('SELECT" Company.1 "FROM test')'. Это также работает: 'sqldf ('SELECT [Company.1] FROM test')' –

1

Эта проблема о . на ваше имя столбца, если вы измените его на Company_1 это работает:

data = sqldf("select Company_1 from test") 
1

Решение для последнего обновления sqldf ответа here

Нам нужно только написать оператор SQL между одинарными кавычками и имена столбцов , включая точки между двойной цитатой s или обратные такты/обратные кавычки взаимозаменяемы.

 Смежные вопросы

  • Нет связанных вопросов^_^