Indizes in Parzellen in R.

95

Ich kann keine Möglichkeit finden, Indizes im Titel oder im Untertitel von R zu schreiben. Wie kann ich v 1,2 mit 1,2 als Indizes schreiben?

Danke für Ihre Hilfe!

Jeffrey
quelle

Antworten:

137

expression ist dein Freund:

plot(1,1, main=expression('title'^2))  #superscript
plot(1,1, main=expression('title'[2])) #subscript
smu
quelle
3
Wie lade ich "2" aus der Variablen? Ich habe eine Schleife und muss x_ [1] x_ [2] x_ [3] zeichnen ...
0x2207
6
Sie können verwenden, bquotewenn Sie mit tiefgestellten Variablen arbeiten. Sagen wir nIter <- 2, dann plot(1, 1, main = bquote(title[.(nIter)]))ist genau das, was Sie brauchen (aus der R-Hilfe-Mailingliste entnommen ).
fdetsch
119

Wenn Sie mehrere Indizes in einem Text haben möchten, trennen Sie die Abschnitte mit dem Stern (*):

plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'[2]))
Cyrille
quelle
6
Wow, eine zwei Tage alte Antwort auf eine zwei Jahre alte Frage, die sich als das herausstellt, was ich brauchte. Vielen Dank!
Michael
2
Und wenn Sie möchten, dass der Index eine Zeichenfolge ist, setzen Sie ihn einfach in Anführungszeichen:plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'['down here']*'and'^'up'*'there'))
Stewart Macdonald
1
Das ist ein guter Tipp, wie Sie [digits]oder [characters]oder sogar [a5]in den Index setzen können, aber nicht [5a]oder [a a]. Ich habe dies kürzlich entdeckt für:expression('x'['10sdt'])
Cyrille
28

Siehe? Ausdruck

plot(1:10,main=expression("This is a subscript "[2]))

Geben Sie hier die Bildbeschreibung ein

Verfolgungsjagd
quelle
10

Ein Index, der sich auf einen gespeicherten Wert bezieht ...

a <- 10
plot(c(0,1), c(0,1), type = 'n', ann = FALSE, xaxt = 'n', yaxt = 'n')
text(0.2, 0.6, cex = 1.5, bquote(paste('S'['f']*' = ', .(a))))

Geben Sie hier die Bildbeschreibung ein

Tony Ladson
quelle
5

In einem anderen Beispiel funktioniert der Ausdruck für negative hochgestellte Zeichen, ohne dass Anführungszeichen um die negative Zahl erforderlich sind:

title(xlab=expression("Nitrate Loading in kg ha"^-1*"yr"^-1))

und Sie brauchen nur das *, um Abschnitte wie oben erwähnt zu trennen (wenn Sie einen hochgestellten oder tiefgestellten Index schreiben und dem Ausdruck danach mehr Text hinzufügen müssen).

user29609
quelle
1
Vielen Dank für die explizite Erklärung, was das * tut!
Lalochezia
4

Wie andere Benutzer bereits betont haben, verwenden wir expression(). Ich möchte die ursprüngliche Frage beantworten, bei der der Index ein Komma enthält:

Wie kann ich v 1,2 mit 1,2 als Index schreiben?

plot(1:10, 11:20 , main=expression(v["1,2"]))

Außerdem möchte ich die Referenz für diejenigen hinzufügen, die die vollständige expressionSyntax beim RPlotten finden möchten: Weitere Informationen finden Sie auf der ?plotmathHilfeseite. Beim Ausführen demo(plotmath)werden viele Ausdrücke und relevante Syntax angezeigt.

Denken Sie daran *, verschiedene Textarten innerhalb eines Ausdrucks zu verknüpfen.

Hier sind einige der Beispielausgaben von demo(plotmath):

Geben Sie hier die Bildbeschreibung ein

Megatron
quelle