आर

2012-11-27 3 views
7

में सभी दशमलव स्थानों को स्वरूपित करना मैं एक आदेश का उपयोग करके, पूरे आर सत्र के दौरान प्रदर्शित अंकों की संख्या कैसे निर्दिष्ट कर सकता हूं? यह कहना है, मैं के रूप में हमेशा प्रदर्शित करने के लिए मूल्य 0 कैसे प्राप्त कर सकता हूं? मैंने options(digits=1) कमांड का प्रयास किया है, लेकिन 0 अभी भी 0 और 0.0 के रूप में प्रदर्शित नहीं होता है। मैं वास्तव में print(ifelse(x==0,"0.0",x)) जैसे कुछ कमांड को लपेटने से बचने की कोशिश कर रहा हूं।आर

यह भी अच्छा होगा अगर इस समस्या का समाधान किया गया, 55.0 के रूप में दिखाएं।

+0

यह "आप कर सकते हैं, लेकिन आपको चाहिए?" ऐसा करने के लिए कुछ व्यक्तिगत सौंदर्यशास्त्र के अलावा कोई कारण नहीं है, और यह पूर्णांक बनाम फ्लोट्स से निपटने के दौरान आपको गुमराह कर सकता है। याद रखें कि जो प्रदर्शित होता है वह परिशुद्धता से संबंधित नहीं है जिसके साथ संख्याएं संग्रहीत की जाती हैं, और आगे यह है कि जब फ़ाइल में 'sprintf'-ing' होता है तो इस प्रकार के स्वरूपण को मजबूर करना मुश्किल होता है। –

उत्तर

6

मुझे यकीन नहीं है कि 0 के पीछे options है या नहीं। एक संभावना है कि आप अपना खुद का प्रिंट करें। संख्यात्मक और print.integer कार्यों।

print.integer <- print.numeric <- function(..., digs=1) { 
    print(format(as.numeric(...), nsmall=digs), quote=F) 
} 

यह अभी भी print आवश्यकता है, लेकिन neater

> print(-1:5) 
[1] -1.0 0.0 1.0 2.0 3.0 4.0 5.0 


वैकल्पिक रूप से है, तो आप सीधे प्रारूप में nsmall तर्क का उपयोग कर सकते हैं।

mat <- matrix(as.numeric(rep(0:3, 5)), ncol=4) 
print(format(mat, nsmall=2), quote=F) 
0

आप मेरे पैकेज formattable को आजमा सकते हैं।

> # devtools::install_github("renkun-ken/formattable") 
> library(formattable) 
> n <- formattable(0, format = "f", digits = 1) 
> n 
[1] 0.0 

n एक formattable, numeric वेक्टर कि अंकगणितीय गणना में अपनी प्रारूपण सुरक्षित रखने है।

> n+5 
[1] 5.0