在R控制台中使用下标和上标

时间:2016-02-14 21:43:55

标签: r rstudio

这更多是为了好奇,但是可以在R控制台中编写下标,如果是这样,我该怎么做?

  • 我正在使用Mac和
  • 通常是RStudio中的代码

虽然赋值语句适用于希腊字母,例如μ,σ,但我不能上标或下标工作。我想写一个诸如σ² <- 1之类的赋值语句并让它得到认可。特别是,键入最后一个命令我收到以下错误消息

Error: unexpected input in "σ�"

2 个答案:

答案 0 :(得分:1)

可以,但你不应该;不符合R标准的名称最终会导致问题。

规则来自?Quotes

  

名称和标识符

     

标识符包含一系列字母,数字,句点(。)   和下划线。它们不能以数字或下划线开头,   也没有一个句号后跟一个数字。保留字无效   标识符

     

字母的定义取决于当前的区域设置,但仅限于   ASCII数字被认为是数字。

     

这种标识符也称为句法名称,可以使用   直接在R代码中。几乎总是,可以使用其他名称   他们被引用了。首选引号是反引号(`)和deparse   通常会使用它,但在许多情况下单或双   可以使用引号(因为字符常量通常会转换为   一个名字)。反引号可能必不可少的一个地方是划界   公式中的变量名称:参见公式。

如果您仍想破坏规则,有几种方法。您可以使用assign

> assign('σ²', 47)
> `σ²`
[1] 47
> σ²
Error: unexpected input in "σ�"

但请注意,根据您的语言环境,您可能需要在反引号中包装σ²才能成功调用它。

您也可以将它包装在反引号中以指定:

> `σ²` <- 47
> `σ²`
[1] 47
> σ²
Error: unexpected input in "σ�"

正如您所看到的,您仍然可能需要在反引号中包含任何调用(特别是如果您希望代码可以轻松移植)。

那就是说,这真是一个真正令人痛苦的想法。

  1. 您的变量名称很难输入;
  2. 您的代码可能无法移植;
  3. 您很有可能在以后更复杂的功能中导致错误(例如,NSE功能将非常难以预测);
  4. 这是做一些非常愚蠢的事情的好方法:
  5. > `+` <- `-`
    > 1 + 1
    [1] 0
    

    规则是有原因的。除非你有充分理由打破它们,否则不要。

    附录

    如果您只想将符号表达式用作字符串,encodeStringformat都很有用:

    > encodeString('σ²')
    [1] "σ²"
    > format('σ²')
    [1] "σ²"
    

    有关详细信息,请参阅他们的帮助页面,但通常可以在字符串中使用任何符号(甚至是表情符号!),如果您有点小心将其传递给它的函数。

答案 1 :(得分:0)

我正在使用Windows,所以这可能不适用于Mac。以下代码允许我使用上标。

    > assign("σ²", 3)
    > σ²
    [1] 3

希望这会有所帮助:)