2013-10-24 3 views
1

Я использую Notepad ++ для моего кодирования R. Однако, когда я пишу SQL запросов для R:Notepad ++ indentations и т. Д.

tt <- "SELECT 
     * 
     FROM 
     myTable" 

Notepadd ++ читает вкладку углублений и линия возвращается в R. Таким образом, я получаю что-то вроде этого:

tt> "SELECT \n\t\t* \n\t\tFROM \n\t\tmyTable" 

Я вижу подобный материал, когда я ставлю линию перерывы в моих более длинных функциях и т. д.

Это нормально, конечно, но это действительно трудно прочитать на консоли, и другие люди хотят посмотреть на него. Есть ли способ форматировать что-то, чтобы он читался в Notepad ++, а затем каким-то образом удалял возвращаемые данные и вкладки, когда я вводил их в консоль R?

+0

[Этот вопрос] (http://stackoverflow.com/questions/455037/notepad-tabs-to-spaces) может помочь. Но я бы посоветовал вам использовать более полнофункциональную IDE, такую ​​как RStudio или полнофункциональный текстовый редактор. – Justin

+0

Это полностью помогло, спасибо! Я использую R Studio для некоторых вещей, я, вероятно, должен использовать его для большего. –

+0

Rstudio имеет те же синтаксические проблемы, что не может сказать, что строка - это немного кода SQL или просто странно сформулированное предложение. Запутанное автоиндентификация сглажено, но подсветка синтаксиса и т. Д. Недоступна. – AdamO

ответ

0

Когда я пишу SQL-код, который вызывается из R, например, в пакете RODBC, я часто редактирую этот код на другой вкладке своего текстового редактора и сохраняю его в файл с расширением .sql. Таким образом, я могу в полной мере использовать подсветку синтаксиса и правильную автоиндентификацию, если таковой имеется. Вы можете прочитать этот файл в R, используя команду readLines.

Однако, если есть ошибка, и код возвращается вам, этот код не печатает на консоль в читаемом формате. Вы должны распечатать ошибку, используя команду cat.

Например,

> con <- odbcConnect(someSqlServer, myUserId, myPassword) 
> qry <- sqlQuery(con, ' 
select 
    nonExistentVars 

from 
    nonExistentTable as A 

inner join 
    otherNonExistentTable as B 

on A.fakeId = B.fakeId 
') 

> qry ## hard to read 
"ERROR blah blah \nselect \n nonExistentVars \n\nfrom \n nonExistentTable as A \n\ninner join \n otherNonExistentTable as B \n\non A.fakeId = B.fakeId\n" 

> cat(qry) ## easy to read 
ERROR blah blah 
select 
    nonExistentVars 

from 
    nonExistentTable as A 

inner join 
    otherNonExistentTable as B 

on A.fakeId = B.fakeId 
Смежные вопросы