R中的下标


96

我找不到在标题或R中的小写字母的方法。如何以1,2作为下标写v 1,2?

谢谢你的帮助!

Answers:


138

expression 是你的朋友:

plot(1,1, main=expression('title'^2))  #superscript
plot(1,1, main=expression('title'[2])) #subscript

3
如何从变量加载“ 2”?我有一个循环,需要绘制x_ [1] x_ [2] x_ [3] ...
0x2207 2014年

6
您可以bquote在使用下标变量时使用。说,nIter <- 2然后plot(1, 1, main = bquote(title[.(nIter)]))就是您所需要的(从R-help邮件列表中获取)。
fdetsch'1

120

如果要在一个文本中包含多个下标,请使用星号(*)分隔各节:

plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'[2]))

6
哇,一个为期两年的老问题的答案只有两天了,事实证明这是我所需要的。谢谢!
2014年

3
如果希望下标为字符串,只需将其用引号引起来:plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'['down here']*'and'^'up'*'there'))
Stewart Macdonald 2014年

1
这是一个很好的提示,你可以把[digits]或者[characters]甚至[a5]在标而不是[5a][a a]。我最近发现此问题的原因是:expression('x'['10sdt'])
Cyrille 2014年

28

见?表达式

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

在此处输入图片说明


10

下标并引用存储的值...

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))))

在此处输入图片说明


5

另一个示例,表达式适用于负上标,而无需在负数前后加上引号:

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

并且您只需要使用*来分隔上述部分(当您编写上标或下标并在其后的表达式中添加更多文本时)。


1
感谢您明确解释*的作用!
Lalochezia

4

正如其他用户指出的那样,我们使用expression()。我想回答下标中包含逗号的原始问题:

如何以1,2作为下标写v 1,2?

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

另外,我想为那些希望expressionR绘图中找到完整语法的人添加参考:有关更多信息,请参见?plotmath帮助页面。跑步demo(plotmath)将展示许多表达式和相关语法。

切记使用 *在表达式中连接不同类型的文本。

这是来自的一些示例输出demo(plotmath)

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.