2015-03-15 6 views
6

के राउनम्स के रूप में कैसे दिखाया जाए, मैं सोच रहा हूं कि आर में मैं ग्रीक अक्षरों के अभिव्यक्तियों सहित मैट्रिक्स के राउनम्स को कैसे सेट करना है, मैं "अभिव्यक्ति" का उपयोग करता हूं, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। नीचे मेरा कोड है।ग्रीक अक्षरों को मैट्रिक्स

b.summary = matrix(0, 8, 6) 
colnames(b.summary)= c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max.") 
rownames(b.summary)= c(expression(paste(tau, "=1", sep="")),expression(paste(sigma^2, "=1", sep="")), expression(paste(tau, "=5",sep="")), expression(paste(sigma^2, "=0.2",sep="")), expression(paste(tau, "=16", sep="")), expression(paste(sigma^2, "=0.0625",sep="")), expression(paste(tau, "1/2.25", sep="")),expression(paste(sigma^2, "=2.25", sep=""))) 

जब मैं b.summary टाइप करें, दिखाए rownames नीचे है:

paste(tau, "=1", sep = "") 

बजाय लेटेक्स अभिव्यक्ति।

कारण मैं ग्रीक अक्षरों को चाहता हूं कि मैं एक गतिशील दस्तावेज़ बनाने के लिए बुनाई का उपयोग कर रहा हूं। मैं \ matpr {} अभिव्यक्ति का उपयोग कर मैट्रिक्स के सभी तत्व मैन्युअल रूप से टाइप करने के बजाय तालिका को बनाने के बजाय सीधे इस मैट्रिक्स का परिणाम दिखाना चाहता हूं। Knitr में पूरा कोड खंड

<<coverage.b.summary, eval=TRUE, echo=FALSE>>= 
b.summary = matrix(runif(48), 8, 6) 
colnames(b.summary)= c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max.") 
rownames(b.summary)= labels(expression(paste(tau, "=1",  sep="")),expression(paste(sigma^2, "=1", sep="")), expression(paste(tau, "=5",sep="")), expression(paste(sigma^2, "=0.2",sep="")), expression(paste(tau, "=16", sep="")), expression(paste(sigma^2, "=0.0625",sep="")), expression(paste(tau, "=1/2.25", sep="")),expression(paste(sigma^2, "=2.25", sep=""))) 
b.summary 
@ 

आपकी मदद के लिए अग्रिम धन्यवाद!

+0

मुझे यकीन है कि कैसे आप कुछ का प्रतिनिधित्व करते हैं सिग्मा तरह चुकता, नहीं कर रहा हूँ लेकिन [इस प्रश्न] के लिए स्वीकृत उत्तर (http://stackoverflow.com/questions/21122912/factorize-a- संख्यात्मक- variable-with-greek-expression-in-labels-in-r) अधिकांश भाग के लिए सहायक हो सकता है । – nrussell

+0

मैट्रिक्स ऑब्जेक्ट का उपयोग करने पर गंभीर बाधाएं हैं, जिनमें से एक यह है कि राउनम्स चरित्र वैक्टर हैं। उन अभिव्यक्तियों को चरित्र वैक्टरों के लिए मजबूर किया जा रहा है। इस प्रयास के लक्ष्यों को समझाना बेहतर होगा और फिर कम प्रतिबंधित डेटा संरचना पाएं। देशी आर में लाटेक्स का प्रतिनिधित्व करने की कोई धारणा नहीं है और इसलिए आपको इस डेटा-ऑब्जेक्ट का उपयोग करने के तरीके के बारे में आगे सोचने की आवश्यकता है। इसके अलावा पेस्ट फ़ंक्शन अपने प्लॉटमाथ फॉर्म में कोई 'sep' तर्क नहीं है। –

+0

मैं देखता हूँ! जानकारी और सलाह के लिए बहुत बहुत धन्यवाद। मैं इस प्रयास के लक्ष्यों के बारे में समझाऊंगा! – Crystal

उत्तर

5

मैट्रिक्स का उपयोग करने की बाधा के तहत यह सबसे अच्छा है। Rownames आर expression -classed वस्तुओं नहीं हो सकता है। मैं 'ग्रीक' नामक एक नामित वेक्टर का निर्माण कर रहा हूं और नामों का उपयोग करके यूनिकोड मूल्यों को खींच रहा हूं, और फिर ताऊ और सिग्मा^2 के साथ वैकल्पिक पंक्तियों को लेबल करने के लिए तर्क रीसाइक्लिंग का उपयोग कर रहा हूं। (भाव साधनों का उपयोग करने में असमर्थता मैट्रिक्स पंक्ति के नाम में सब-पटकथा नहीं हो सकता।)

greeks=c(alpha='\u03b1', tau='\u03c4', sigma='\u03c3', 
         beta='\u03b2', 
         gamma='\u03b3') 

b.summary = matrix(0, 8, 6) 
colnames(b.summary)= c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max.") 
rownames(b.summary)= paste0(c(greeks['tau'], paste0(greeks['sigma'],"^2")), 
           c("=1","=1", "=5", "=0.2", 
           "=16", "=0.0625", "=2.25", "=2.25")) 

> b.summary 
      Min. 1st Qu. Median Mean 3rd Qu Max. 
τ=1   0  0  0 0  0 0 
σ^2=1   0  0  0 0  0 0 
τ=5   0  0  0 0  0 0 
σ^2=0.2  0  0  0 0  0 0 
τ=16   0  0  0 0  0 0 
σ^2=0.0625 0  0  0 0  0 0 
τ=2.25  0  0  0 0  0 0 
σ^2=2.25  0  0  0 0  0 0 
+0

आपको बहुत धन्यवाद !!!! यह वास्तव में सहायक है !!! – Crystal

2

Tweaking 42 समाधान (इस एक टिप्पणी होना चाहिए, लेकिन एक जवाब बेहतर कोड का प्रारूपण है) @:

greeks = c(alpha='\u03b1', tau='\u03c4', sigma='\u03c3', sigmaSq='\u03c3\u00B2', beta='\u03b2', gamma='\u03b3') 
b.summary = matrix(0, 8, 6) 
colnames(b.summary) = c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max.") 
p1 = c(greeks['tau'], greeks['sigmaSq']) 
p2 = c("1","1", "5", "0.2", "16", "0.0625", "2.25", "2.25") 
rownames(b.summary) = paste(p1, p2, sep="=") 
b.summary 

मैं एक विचरण मुद्रास्फीति कारकों और एसडी की 'kable' KnitR'ing हूँ मेरी विशेष उपयोग के मामले में निम्नलिखित

  Min. 1st Qu. Median Mean 3rd Qu Max. 
τ=1   0  0  0 0  0 0 
σ²=1   0  0  0 0  0 0 
τ=5   0  0  0 0  0 0 
σ²=0.2  0  0  0 0  0 0 
τ=16   0  0  0 0  0 0 
σ²=0.0625 0  0  0 0  0 0 
τ=2.25  0  0  0 0  0 0 
σ²=2.25  0  0  0 0  0 0 

का उत्पादन mtcars डेटासेट के लिए मुद्रास्फीति कारकों:

cars.vif = rbind(
    t(vif(cars.model)[,1]), 
    t(sqrt(vif(cars.model))[,1]) 
) 
rownames(cars.vif) = c("\u03c3", "\u03c3\u00B2") 
kable(cars.vif) 

Rownames with Greek symbol and superscript

KnitR'ing इस xelatex और फ़ॉन्ट जिसमें आवश्यकता है σ यानी Arial

+2

एक और विकल्प: लाटेक्स आउटपुट और 'केबल' के मामले में, लाटेक्स वाक्यविन्यास का उपयोग राउननाम/उपनामों के लिए किया जा सकता है: 'उपनाम (कार) <- सी ("$ \\ nu $", "$ \\ delta $"); knitr :: केबल (कार, भागने = गलत) '। –

संबंधित मुद्दे