【问题标题】:List of all the R keywords所有 R 关键字的列表
【发布时间】:2013-09-01 20:26:56
【问题描述】:

我想在 emacs 中启用自动完成功能来编辑我的 R 文件。为此,我需要列出 R 语言中的所有关键字。有人知道这是否在某处可用?我知道我必须在我正在使用的外部包中包含所有函数名称,但现在 r-cran-base 中的内容列表对我来说应该没问题。

非常感谢!

【问题讨论】:

  • @DavidRobinson 肯定有帮助,但它并不包含 R 中的所有关键字。例如,以下内容不存在:return、apply、data.frame...
  • data.frameapply 不是关键字。 plotprint 和许多其他函数/方法也不是。
  • @HongOoi 你说的关键字是什么意思?对我来说,它意味着语言保留的所有表达式,例如 return、apply 或 data.frame。当然,我可以(也许,因为我没有尝试过)覆盖它们,但我永远不会那样做,所以我需要那些让我的自动完成工作。
  • 但是语言不保留你提到的词。对比一下如果你执行return <- 2if <- 2 会发生什么,例如。
  • 只需使用Emacs/ESS,其中自动完成从 12.09 开始默认激活。

标签: r emacs


【解决方案1】:

apropos 带有空字符串参数将列出搜索路径上的所有对象。它是用于在默认 GUI 中完成的选项卡。

apropos("")
   [1] "-"                                    
   [2] "-.Date"                               
   [3] "-.POSIXt"                             
   [4] "!"                                    
   [5] "!.hexmode"                            
   [6] "!.octmode"
   ...

【讨论】:

    【解决方案2】:

    The R Language Definition 列出了 R 的所有关键字。请注意,这些也是保留的。

    以下标识符有特殊含义,不能用于对象名称

    if else 重复 while 函数 for in next break TRUE FALSE NULL Inf NaN NA NA_integer_ NA_real_ NA_complex_ NA_character_ ... ..1 ..2 等

    【讨论】:

    • 第 10.3.3 章第 48 页。
    【解决方案3】:

    请参阅?Reserved?Control,也许还有?Syntax?Ops

    【讨论】:

      【解决方案4】:

      请注意,这里讨论的内容与实际的 R 关键字无关,这是它自己的特殊之处。我怀疑这就是@HongOoi 所暗示的。
      R 关键字的存在表面上是为了帮助按主题对函数进行分组,但除了 internal 的特殊情况外,并未广泛使用。

      如果你想查看有效关键字列表,可以这样获取

      readLines(file.path(R.home("doc"), "KEYWORDS.db"))
      

      【讨论】:

        【解决方案5】:

        试试这个

        ls('package:base')
        

        列出包中的所有对象

        【讨论】:

        • ls(asNamespace("base"), all.names=TRUE) 更完整。
        • 是的,这正是我想要的。我只需将该函数的输出内容写入我将用于列出我的关键字的文件中。谢谢!
        【解决方案6】:

        您可能会转到 R 缓冲区并查看以下变量(假设您有 Emacs Speaks Statistics):

        ess-R-font-lock-keywords
        

        通过使用C-h v ess-R-font-lock-keywords

        从那里开始,您可以查看 ess-custom.el 并找到实施所需的一切。

        【讨论】:

        • 我不认为@S4M 使用 ESS,因为默认情况下启用了自动完成功能。或者我根本不明白这个问题:)
        【解决方案7】:

        只要确保你真的想要这样做,因为 ?rcompgen 描述了 Deepayan Sarkar 在 utils-package 中已经提供“tab-completion”的内置函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-21
          • 1970-01-01
          • 2021-09-14
          • 1970-01-01
          • 1970-01-01
          • 2018-07-03
          • 1970-01-01
          相关资源
          最近更新 更多