Bir Rscript'in argüman olarak bir dosya adı verildiğinde istediğim işlemleri nasıl gerçekleştireceğimi görüyorum, ör. Benim Rscript script
denilen ve içerdiği takdirde:Bir Rscript okundu ya da stdin'den giriş al
Rscript script filename.Rmd --args dev='svg'
başarıyla bana geri yankılandı filename.Rmd
içeriğini almak:
#!/usr/bin/Rscript
path <- commandArgs()[1]
writeLines(readLines(path))
Sonra bash komut satırından çalıştırabilirsiniz. yerine
filename.Rmd
gibi yukarıdaki argüman bir dosya adı geçen ben
stdin
itibaren o metin geçmek istiyorsanız, ben stdin'den okumak benim komut dosyasını değiştirerek deneyin:
#!/usr/bin/Rscript
writeLines(file("stdin"))
ama bunun için komut çağrısını oluşturmak için nasıl bilmiyorum vaka.
cat filename.Rmd | Rscript script --args dev='svg'
ve ayrıca denenmiş yönlendirme: Ben içeriği boru denedik
Rscript script --args dev='svg' < filename.Rmd
ve her iki durumda hata alıyorum:
Error in writeLines(file("stdin")) : invalid 'text' argument
(Ben de open(file("stdin"))
denedim). Yanlış bir Rscript veya komut satırı argümanını yanlış mı, yoksa her ikisini mi yapıyorum emin değilim.
olası yinelenen (http://stackoverflow.com/questions/9370609/piping-stdin-to-r) – hrbrmstr
ancak hata 'writeLines' için kullanıyor olabilir read read 'readLines' – hrbrmstr
Teşekkürler; 'readLines (dosya (" stdin "))' i kullanarak '' açık (dosya ("stdin")) '' 'problemi çözer. – cboettig