2014-11-13 15 views
7

Ben bir matris baskı, bu konsolda satır ve sütun indisleri ile gösterilir olmadan bir matris yazdırma. Örneğin.satır ve sütun indisleri

> print(diag(3)) 
    [,1] [,2] [,3] 
[1,] 1 0 0 
[2,] 0 1 0 
[3,] 0 0 1 

Sütun ve satır dizinlerini nasıl önleyebilirim? Yani Böyle bir şey:

> print(diag(3), indices=FALSE) 
1 0 0 
0 1 0 
0 0 1 

Ben cwhmisc paket bu according to the documentation yapmak için bir printM fonksiyonunu içermelidir görebilirsiniz ama cwhmisc yüklediğinizde o yoktur. Ayrıca, baz istasyon R.

+2

Soru: ** Neden ** bunu yapmak istiyoruz? Konsolda yazdırma sadece operasyonel kullanım içindir; matrisin bir dosyaya "yazdırılmış" olmasını istiyorsanız, satır ve sütun adlarını bastırmak için "write.table" gibi pek çok seçenek vardır. –

+0

Cevap: hızlı açık// kopya/yakın dosyaları yazmak zorunda kalmadan elle endekslerini kaldırmak zorunda kalmadan (aslında bir '' as.matrix (tablo (...)) '') Bir kağıt taslağına matrisi kopyalamak için . Sadece tembellik, sanırım. –

cevap

8

bunun için işe yarayabilir base pakette fonksiyon prmatrix yılında etmek mümkün olmalıdır şey gibi görünüyor, bu bağımsız değişkenler alan collab ve rowlab edebilirsiniz:

prmatrix(diag(3), rowlab=rep("",3), collab=rep("",3)) 

1 0 0 
0 1 0 
0 0 1 
+0

(1) O belgelerinde örnektir bu komik :) –

+0

Gerçi üstündeki alan ve sol tarafını ekler. Çıkış, 'm <- diag (3) ile aynıdır; colnames (m) <- rownames (m) <- rep ("", 3); baskı (m) '. – Roland

+0

Belgelerin güncel olmadığı görülüyor: print.matrix'e atıfta bulunuyor ancak mevcut R sürümlerinde böyle bir baskı yöntemi görünmüyor. –

8

Başka bir çözüm fonksiyonu ile write.table

write.table(diag(3), row.names=F, col.names=F) 

bir çizelge ile sütunları ayırarak daha güzel görünüm yapabilir

write.table(matrix(sample(1000,9),3,3), row.names=F, col.names=F, sep="\t") 
İlgili konular