2014-07-02 26 views
12

Knitr, aşağıdaki gibi bir kod yığınını kullanırken güzel, sözdizimi ile vurgulanmış bir kod üretir.Farklı yazdırma sql kodunu knitr ile ayrı bir dosyadan yazdır

```sql 
SELECT column 
FROM table 
``` 

Aynı şey elde etmek mümkün mü, bir dosyada saklanan sql koduyla mı? gibi şey: Ben bir satır içi R ifade kullanabilirsiniz düşünüyorum

```sql 
read_chunk('mycode.sql') 
``` 

cevap

16

bunu başarmak için:

```sql 
`r paste(readLines('mycode.sql'), collapse = '\n')` 
``` 

Kesinlikle Ayrıca SQL bir sürü varsa kod basitleştirmek için bir sarıcı işlevi tanımlayabilirsiniz dahil etmek için komutlar, örneğin

include_file = function(file) { 
    paste(readLines(file), collapse = '\n') 
} 
+0

Harika, teşekkürler Yihui. Kod satırları içinde satır içi r ifadesini kullanabileceğinizi biliyordum. Bu, dokümanlarımı kodumla senkronize etmemi sağlıyor. – Rickard

+0

@Rickard Hayır, kod satırlarında satır içi R ifadelerini kullanamazsınız. Satır içi R ifadesi burada çalışır çünkü '' sql '' knitr kod parçası olarak ele alınmaz. Şu anda sadece '' '' {r *} 'kod parçası olarak tanımlanmıştır (ben burada harflerle ilgili backtickleri yazamıyorum, bu yüzden bir backtick olarak okunması gereken' '' ı kullanıyorum). –

+0

Bu çözüm benim için çalışmadığı için indirildi. Sql dosyası doğru okunur ve görüntülenir, ancak sql kodu olarak biçimlendirilmemiş. – steinbock