2013-12-22 66 views
1

我正在從一些線性模型做我自己的輸出的函數,我想做出輸出矩陣我想要得到一個矩陣與不同的小數規則。例如,如果我有:相同的矩陣與不同的小數規則

structure(c(1, 2, 3.45, 5.67), .Dim = c(4L, 1L), .Dimnames = list(c("A", "B", "C", "D"), NULL))' 

是否有可能使行1和2只顯示爲整數,小數位留在最後兩行?我知道我可以製作兩個矩陣並使用rbind(),但我想保持對齊方式相同,因此列排列良好。

+3

編號R矩陣需要是原子的,即所有相同的存儲模式:(無混合數據類型)。實現目標的唯一方法是創建一個具有不同打印方法的新類。 –

+0

好的謝謝,專注於此。 – JPK

回答

3

,如果你改變你的數字矩陣爲角色矩陣打印之前這是很容易:

print("[<-"(mat, as.character(mat)), quote = FALSE) 

這顯示:

[,1] 
A 1 
B 2 
C 3.45 
D 5.67 

以上命令類似於:

mat[] <- as.character(mat) 
print(mat, quote = FALSE) 

但保持mat不變。

+0

非常感謝你! – JPK

2

R中的輸出使用print(...)函數格式化;使用digits =參數來控制輸出中的有效位數。

所以,如果你上面的矩陣是M

print(M[1:2,],digits=0) 
# A B 
# 1 2 
print(M[3:4,],digits=3) 
# C D 
# 3.45 5.67 
+0

這裏的問題是我想爲所有值的一個矩陣,因爲我的行名稱是不同的長度,所以我試圖做一個函數,使線性模型的輸出與我想要的信息(和學習更多關於R編程)和我想要一個帶有行名稱的值向量作爲值的不同標籤。 – JPK