【问题标题】:Why "R help" does not work for some commands? [duplicate]为什么“R help”对某些命令不起作用? [复制]
【发布时间】:2020-10-19 11:02:36
【问题描述】:

我想使用“R 中的帮助”来查看有关某些命令的一些信息,例如“for”、“if”、“while”、“repeat”等。但是“R 帮助”中没有信息关于这样的命令。我想知道为什么?

我对上述命令使用“R help”,如下所示:

?for
?while
?if
?repeat

【问题讨论】:

  • ?"while"?"if" 有效。
  • @RonakShah 请,请,please 不要在标识符周围使用 R 文档不鼓励的常规引号。使用反引号。是的,我知道在 cmets 中格式化这些是很痛苦的,但仍然如此。在这里使用引号是非常令人困惑的。
  • 请,请阅读基本文档:An Introduction to R: Getting help with functions and features:“对于由特殊字符指定的功能,参数必须用双引号或单引号括起来,使其成为“字符串”:这是对于包括ifforfunction在内的一些具有句法意义的词也是必需的。"另请参阅常见问题解答How to get help in R?
  • @KonradRudolph FWIW,the docs 似乎没有明确鼓励反引号或不鼓励常规引用。
  • @Henrik 文档说“[标识符] 的首选引号是反引号 (`)”。对于它的价值,我会更强烈地说:常规引号在这里完全起作用的事实是一种语言中的错误,应该弃用,然后在R的未来版本中删除。

标签: r for-loop if-statement while-loop


【解决方案1】:

R 要求关键字以语法有效的形式使用。 R 的工作方式是,它期望 if 例如后跟括号中的表达式和正文。 ?if 不是有效的 R 语法。

相反,? 是一个在其后需要一个标识符的运算符。

要使其有效,您应该quote the if identifier in backticks。这样,R 会将表达式解析为 ? 后跟标识符,而不是 ? 后跟不完整的 if 表达式:

?`if`

反引号引用是 R 的表达方式:“嘿,反引号之间的那个东西是一个有效的标识符,即使它看起来完全不像一个”。您可以(但通常不应该!)完全使用它来使用不稳定的变量名称:

`name with spaces` = 2
message(`name with spaces` + 5)
# 7

此功能在应用于外部导入数据的列名(有时包含空格或其他无效标识符字符)或when defining operators 时更有用。

【讨论】:

    猜你喜欢
    • 2017-05-10
    • 2020-01-20
    • 2013-01-14
    • 2011-06-14
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多