प्रयास करें bquote()
दिखाने के लिए कैसे मिलता है की तरह लग रहा है उदाहरण के लिए:
set.seed(1)
vall <- format(rnorm(1),digits=3)
eq <- bquote(bold(R^2 == .(vall)))
sq <- seq(0, 1, by = 0.1)
plot(sq, sq, type = "n")
text(0.5, 0.5, eq)
कारण अपने उदाहरण से काम नहीं करता है कि आर कभी नहीं vall
का मूल्यांकन समाप्त होता है:
> eq2 <- expression(paste(R^2," = ",vall,sep=""))
> eq2
expression(paste(R^2, " = ", vall, sep = ""))
plotmath इस बाहर कुछ बनाने की कोशिश करता है, लेकिन अनिवार्य रूप से vall
सचमुच लिया जाता है।
सामान्य रूप से आपको प्लॉटमाथ अभिव्यक्ति में paste()
की आवश्यकता नहीं है, तो आप मानक ऑपरेटरों का उपयोग करके और लेआउट ऑपरेटरों के उपयोग के माध्यम से अभिव्यक्ति का निर्माण कर सकते हैं। उदाहरण के लिए, एक अभिव्यक्ति एक अपने उदाहरण का उत्पादन (unevaluated vall
) के बराबर के लिए, तुम सब वास्तव में जरूरत है:
expression(R^2 == vall)
bquote()
एक तरह से एक वस्तु एक अभिव्यक्ति में अपने मान से बदल दिया है। आप उस ऑब्जेक्ट को लपेटते हैं जिसे आप .()
में अपने मान से बदलना चाहते हैं। फिर ऑब्जेक्ट की तलाश करेगा और उसका मूल्य लेगा और इसे अभिव्यक्ति में डालेंगे।
एक अलग इंटरफ़ेस के साथ वैकल्पिक दृष्टिकोण के लिए substitute()
भी देखें।
स्रोत
2012-12-28 18:54:33
डुप्लिकेट? http://stackoverflow.com/questions/4973898/combining-paste-and-expression-functions-in-plot-labels –
मुझे नहीं लगता कि यह एक डुप्लिकेट है लेकिन इस पोस्ट का शीर्षक थोड़ा भ्रामक है। क्या मैं समस्या को प्रतिबिंबित करने के लिए शीर्षक को दोबारा सुधारने का सुझाव दे सकता हूं क्योंकि एक्सपोनेंट वास्तव में आपकी समस्या नहीं प्रतीत होता है। –
'sep =" "'यहां कुछ भी नहीं है (एक खाली स्ट्रिंग जोड़ता है)। यह 'आधार :: पेस्ट' नहीं बल्कि 'प्लॉटमैथ' है। यहां कोई चोट नहीं आएगी, लेकिन यदि आप एक गैर-खाली स्ट्रिंग निर्दिष्ट करते हैं तो वह नहीं करेंगे जो आप चाहते हैं। –