2012-05-21 12 views
5

Ben sistem komutu kullanan R bir shell script çalıştırmak için biliyorum: benim "komutu" sonucu bir tablo yazdırmak istiyorsa, AncakR harf komut dosyası nasıl çalıştırılır ve çıktı tabloya nasıl alınır?

my.table <- system(command,intern=TRUE) 

ve ben R tabloyu okumak istiyorum doğrudan kendi veri yapısına. (veri çerçevesi gibi bir şey) Bunu yapmak için kolay bir yolu var mı? Çünkü "tablo" daki mevcut çıktı bir karakter dizisi tablosudur. İstediğim, read.table() olarak R nesnesidir. Sonuç 'tablo' satırları işaretlemek için beyaz boşluk ayırıcılar ve taşıyıcı-getiri varsa

+0

ile system daha bellek ve zaman içinde daha verimli olacaktır. İstenmeyen birkaç öneri: 1) '->' ataması teknik olarak doğrudur, ancak kaçınılmalıdır. 2) Daha iyi cevaplar alacağınız için lütfen tekrarlanabilir sorular (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) gönderin. Bu durumda, kesinlikle bazı örnek çıktılar göndermek isteyeceksiniz. –

+0

"-> atama teknik olarak doğru, ancak kaçınılması gereken" Ne? – Hansi

cevap

4

, o zaman read.table ait 'text' argümanı sonuçları geçmelidir:

inp.tbl <- read.table(text = system(command,intern=TRUE)) 
+0

çok teşekkürler! Bu benim problemimi çözer! – Pengyao

+0

(R'nin önceki sürümlerinin kullanıcıları için bir uyarı: 'read.table' için 'metin' argümanı ve bunların türevleri nispeten yeni bir eklentidir.) –

4

kullanıyorum bekliyoruz pipe kendini ayrıştırma bazı metinler yapmanız gerekecek şüpheli intern

inp.tbl <- read.table(pipe(command)) 
İlgili konular