2015-06-05 12 views
1

我希望創建大量具有非常不同比例的數字元素的表格。例如,各種變量沿對角線向下的方差以及對角線之間的相關性。數字越大,表格就越大,而且難以閱讀。使用stargazer自動縮放表中的數字

是否有一種使用stargazer(或其他類似軟件包)縮小更大的元素並用腳註表示或自動使用指數表示法的好方法?

例如,下面的r代碼創建一個矩陣,其中對角元素比其他元素大得多。

x <- matrix(rnorm(25,0,1),5,5) 
diag(x) <- rnorm(5,10000000,10) 
stargazer(x,summary=F,digits=2) 

任何幫助非常感謝。

回答

0

也許你可以做這方面的一些調整:

ifelse(x < 100, sprintf("%0.2f", x), sprintf("%0.5e", x)) 
# [,1]   [,2]   [,3]   [,4]   [,5]   
#[1,] "9.99999e+06" "-0.79"  "-0.56"  "0.91"  "-2.57"  
#[2,] "-0.13"  "9.99999e+06" "-1.83"  "-0.34"  "1.73"  
#[3,] "-0.48"  "0.38"  "1.00000e+07" "1.40"  "-0.32"  
#[4,] "-0.05"  "-0.62"  "0.91"  "1.00000e+07" "1.15"  
#[5,] "-0.09"  "-0.33"  "-0.16"  "0.35"  "9.99999e+06" 

或者不帶引號:

noquote(ifelse(x < 100, sprintf("%0.2f", x), sprintf("%0.5e", x))) 
#  [,1]  [,2]  [,3]  [,4]  [,5]  
#[1,] 9.99999e+06 -0.79  -0.56  0.91  -2.57  
#[2,] -0.13  9.99999e+06 -1.83  -0.34  1.73  
#[3,] -0.48  0.38  1.00000e+07 1.40  -0.32  
#[4,] -0.05  -0.62  0.91  1.00000e+07 1.15  
#[5,] -0.09  -0.33  -0.16  0.35  9.99999e+06 

你基本上是在轉換你想要的方式文本打印。有關輸出選項的更多信息,請參閱?sprintf