2013-10-24 44 views
1

我使用Notepad ++進行R編碼。然而,當我寫的R SQL查詢:記事本++縮進等

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

當我編寫從R中調用的SQL代碼時,例如在RODBC包中,我經常在我的文本編輯器的另一個選項卡中編輯該代碼,並將其保存到擴展名爲.sql的文件中。這樣,我可以充分利用語法突出顯示並更正自動縮進(如果有)。您可以使用readLines命令將該文件讀入R.

但是,如果出現錯誤並且代碼返回給您,則此代碼不會以可讀格式打印到控制檯。您應該使用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