这更多是为了好奇,但是可以在R控制台中编写下标,如果是这样,我该怎么做?
虽然赋值语句适用于希腊字母,例如μ,σ,但我不能上标或下标工作。我想写一个诸如σ² <- 1
之类的赋值语句并让它得到认可。特别是,键入最后一个命令我收到以下错误消息
Error: unexpected input in "σ�"
答案 0 :(得分:1)
你可以,但你不应该;不符合R标准的名称最终会导致问题。
规则来自?Quotes
:
名称和标识符
标识符包含一系列字母,数字,句点(。) 和下划线。它们不能以数字或下划线开头, 也没有一个句号后跟一个数字。保留字无效 标识符
字母的定义取决于当前的区域设置,但仅限于 ASCII数字被认为是数字。
这种标识符也称为句法名称,可以使用 直接在R代码中。几乎总是,可以使用其他名称 他们被引用了。首选引号是反引号(`)和deparse 通常会使用它,但在许多情况下单或双 可以使用引号(因为字符常量通常会转换为 一个名字)。反引号可能必不可少的一个地方是划界 公式中的变量名称:参见公式。
如果您仍想破坏规则,有几种方法。您可以使用assign
:
> assign('σ²', 47)
> `σ²`
[1] 47
> σ²
Error: unexpected input in "σ�"
但请注意,根据您的语言环境,您可能需要在反引号中包装σ²
才能成功调用它。
您也可以将它包装在反引号中以指定:
> `σ²` <- 47
> `σ²`
[1] 47
> σ²
Error: unexpected input in "σ�"
正如您所看到的,您仍然可能需要在反引号中包含任何调用(特别是如果您希望代码可以轻松移植)。
那就是说,这真是一个真正令人痛苦的想法。
像
> `+` <- `-`
> 1 + 1
[1] 0
规则是有原因的。除非你有充分理由打破它们,否则不要。
如果您只想将符号表达式用作字符串,encodeString
和format
都很有用:
> encodeString('σ²')
[1] "σ²"
> format('σ²')
[1] "σ²"
有关详细信息,请参阅他们的帮助页面,但通常可以在字符串中使用任何符号(甚至是表情符号!),如果您有点小心将其传递给它的函数。
答案 1 :(得分:0)
我正在使用Windows,所以这可能不适用于Mac。以下代码允许我使用上标。
> assign("σ²", 3)
> σ²
[1] 3
希望这会有所帮助:)