2011-05-30 25 views
5

R'de LowRankQP() paketiyle biraz oynuyorum ve hatta verbose=FALSE ayarı bile çok fazla çıkış üretiyor (aşağıdaki örneğe bakın).Bu R paketinden çıktı nasıl susar?

Çıktılar, kodun derlenmiş bölümünden geliyor. Var olan derlenmiş kodu değiştirmeden LowRankQP() numaralı telefona LowRankQP() numaralı telefona kesinlikle sessiz (yani ekranında numaralı telefondan herhangi bir şey bastırma) yapmak için bir yol var mı (bir sarma işlevi?) Var mı? (Bu paketle ilişkili e-posta adreslerinin hiçbiri etkin değil))?

library(LowRankQP) 

Vmat <- matrix(0,6,6) 
diag(Vmat) <- c(1, 1,1,0,0,0) 
dvec <- c(0,-5,0,0,0,0) 
Amat <- matrix(c(-4,-3,0,-1,0,0,2,1,0,0,-1,0,0,-2,1,0,0,-1),6,3) 
bvec <- c(-8,2,0) 
uvec <- c(100,100,100,100,100,100) 

aa<-LowRankQP(Vmat,dvec,t(Amat),bvec,uvec,method="CHOL") 

# LowRankQP CONVERGED IN 15 ITERATIONS 
# 
#  Primal Feasibility = 2.5719308e-16 
#  Dual Feasibility  = 7.1949984e-16 
#  Complementarity Value = 3.3066705e-11 
#  Duality Gap   = 3.3065273e-11 
#  Termination Condition = 9.7802929e-12 

O uzaklara ..

Ubuntu 11.04 ile istediğiniz "LowRankQP CONVERGED İÇİNDE 15 tekrarlamalar", R versiyonu 2.12.1 ve LowRankQP() 1.0.1 ile başlar parçası.

+1

Lütfen tekrarlayabileceğiniz bir örnek ekleyin. Yaptığım birkaç testten onunla bir sorunum yok. –

+2

Windows'da yeniden üretilemez, çıktı almam. Lütfen 1) en son sürüme güncelleyin ve 2) bu devam ederse, paketin geliştiricilerini bilgilendirin. Bu linux ve Windows sürümleri arasında bazı hata/tutarsızlık gibi kokuyor. –

+0

Teşekkürler J.M. (zaten paketin en son sürümünü çalıştırıyorum, böylece devel'i postalayacağım). – user189035

cevap

5

sink (dosya = NULL), son lavaboyu kapattığından çalışmıyor, daha fazla bir şey yok.

lavabo (dosya = NULL) Uyarı mesajı: lavaboda (dosya = NULL): hayır lavabo çıkarmak için

Ne olsa çalışır geçerli:

f = file() 
sink(file=f) ## silence upcoming output using anonymous file connection 
... your code here ... 
sink() ## undo silencing 
close(f) 

Anonim bir dosya kullanmak, platform-agnostik olma avantajına sahiptir, yani geçici bir dosya adıyla gelmeniz gerekmez.

Örnek:

f = file() 
sink(file=f) 
example(glm) 
sink() 
close(f) 

kullandığım lavabo() başarılı bir şekilde diğer işlevleri (ör normalmixEM2comp {mixtools}) için.

(düzenleme: bu yayının ilk sürümü açık bir dosya tanıtıcısı kullanmadı ve bu nedenle bir uyarı verdi - hatta yukarıdaki snippet'i çağırırsanız bile bir hata oluştu). Bu şimdi kapat (f) kullanılarak düzeltildi.

0

Çalışır mıyım, ancak invisible()'u deneyebilirsiniz. Kullanmakta olduğunuz işlevi bilmiyorum ve görünmez olup olmadığını bilmiyorum cat(). Ama sen gidebilirsin.

+0

um: ipucu için teşekkürler, ama işe yaramadı – user189035

+3

Tüm görünmezlik gerçekten, baskı içeriğinin geri dönüş değerini engelliyor, bu yardımcı olmamalı. –

2

R işlevi sink() ile tanıyor musunuz? onun yardım sayfasından:

sink     package:base     R Documentation 

Send R Output to a File 

Description: 

    ‘sink’ diverts R output to a connection. 

    ‘sink.number()’ reports how many diversions are in use. 

    ‘sink.number(type = "message")’ reports the number of the 
    connection currently being used for error messages. 

Usage: 

    sink(file = NULL, append = FALSE, type = c("output", "message"), 
      split = FALSE) 

    sink.number(type = c("output", "message")) 

Arguments: 

    file: a writable connection or a character string naming the file 
      to write to, or ‘NULL’ to stop sink-ing. 

file=NULL argüman burada isteyebilirsiniz şeydir.

+0

teşekkürler D.E. Terminal penceresini de sıçrayan bu baskılardan kaçınmanın herhangi bir yolunu biliyor musunuz? – user189035

+0

'sink (dosya = NULL)' şunu yapar: ** all ** çıkışı NULL'a gider. –

+0

Teşekkürler D.E .: o zaman kullanamamıştım: Yukarıdaki kodda, havuzda (dosya = NULL) yer almalıyım, böylece mesaj ekranda görüntülenmiyor mu? – user189035

1

Tamam, 41Rm -> 418 satırlarını yorumlayarak ve .tar.gz dosyasından (veya alternatif olarak yeni bir seçenek verbose == 2 ekleyerek) yapabilirim.

İlgili konular