2013-09-23 15 views
5

muszę to wyglądać tak:Jak dołączyć indeks górny do tekstu na wykresie na R?

R^2 = niektóre wartości

a próbowałem poniższy kod, ale to nie będzie działać, to wyszło jak „R (wyrażenia (2 ^)) = niektóre wartości”zamiast:

text (25, 200, paste ("R (expression (^2)) =", round (rsquarelm2, 2))) 
+1

Znalazłem ten dowcip h wyszukiwanie w Google. Może możesz to zmodyfikować: 'text (-pi/2, 0, expression (hat (alpha) == (X^t * X)^{- 1} * X^t * y))' –

Odpowiedz

6

nie chcesz wektor znaków, ale wyrazem, stąd ten

expression(R^2 == 0.85) 

jest to, czego potrzebujesz. W takim przypadku chcesz zastąpić wynik innej operacji R. Do tego chcesz substitute() lub bquote(). Uważam, że ten ostatni łatwiej pracować:

rsquarelm2 <- 0.855463 
plot(1:10, 1:10, type = "n") 
text(5, 5, bquote(R^2 == .(round(rsquarelm2, 2)))) 

Z bquote(), coś w .() jest oceniany, a wynik jest wliczone w wyrażenie zwracane.

3

Funkcja paste zwraca ciąg znaków, a nie wyrażenie. Wolę używać bquote przypadków tak:

text(25, 200, bquote(R^2 == .(rs), list(rs=round(rsquarelm2,2)))) 
0

Jak to formatowanie i wartości matematyczne w działek jest FAQ 7.13.

Na przykład, jeśli ahat jest estymatorem parametru a Twojego zainteresowania, użyj

title(substitute(hat(a) == ahat, list(ahat = ahat)))

(zauważ, że jest ‘==’ i nie ‘=’). Czasami bquote() daje więcej zwartą formę, np title(bquote(hat(a) = .(ahat)))

gdzie Podwyrażenia zamknięte w ‘.()’ są zastępowane przez ich wartości.

demo(plotmath) jest również przydatny.


W tym przypadku można użyć albo

title(substitute(R^2 = rsq, list(rsq = format(rsquarelm2, digits = 2)))) 

lub

title(bquote(R^2 == .(format(rsquarelm2, digits = 2)))) 

(format jest bardziej odpowiednie niż tutaj round, ponieważ chcesz kontrolować, w jaki sposób wartość jest wyświetlana raczej niż stworzenie przybliżonej wartości).

Powiązane problemy