代码之家  ›  专栏  ›  技术社区  ›  medriscoll

在R中命名变量的首选样式是什么[关闭]

  •  102
  • medriscoll  · 技术社区  · 15 年前

    据我所知,有几种不同的习俗,它们在不和谐的和谐中共存:

      stock.prices <- c(12.01, 10.12)
      col.names    <- c('symbol','price')
    

    赞成的意见: 在R社区中具有历史优先权,在R核心中普遍存在,并由 Google's R Style Guide .

    充斥着面向对象的内涵,让R新手感到困惑

    2.下划线的使用

      stock_prices <- c(12.01, 10.12)
      col_names    <- c('symbol','price')
    

    赞成的意见: 许多编程语言中的通用约定;青睐 Hadley Wickham's Style Guide

    欺骗:

    3.混合资本化的使用(camelCase)

      stockPrices <- c(12.01, 10.12)
      colNames    <- c('symbol','price')
    

    赞成的意见: 似乎在一些语言社区得到了广泛采用。

    有最近的先例,但历史上未使用(在R库或其文档中)。

    最后,似乎还不够混乱,我应该指出,谷歌风格的指南主张变量使用点符号,但函数使用混合大写。

    9 回复  |  直到 8 年前
        1
  •  84
  •   Dirk is no longer here    15 年前

    前面的答案很好,所以这里需要补充一点:

    • 下划线是 对ESS用户来说很烦人;考虑到ESS的应用相当广泛,您在ESS用户编写的代码中不会看到太多下划线(该集合包括一堆R Core和CRAN作者,尽管有Hadley等例外);

    • 因此,我们有一个明显的赢家仍然站在最后一轮:camelCase。我也不确定我是否真的同意“R社区缺乏先例”的说法。

    是的:实用主义和一致性胜过教条。因此,任何有效的方法都会被同事和合著者使用。毕竟,我们还有空白和大括号需要讨论:)

        2
  •  76
  •   Martijn Pieters    8 年前

    enter image description here

    结果表明(也许这并不奇怪),lowerCamelCase最常用于函数名,period.separated名称最常用于参数。使用大写,如 Google's R style guide 然而,这确实很少见,而且他们提倡使用这种命名约定有点奇怪。

    全文如下:

    http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Baaaath.pdf

        3
  •  34
  •   rhombidodecahedron    9 年前

    一路下划线!与流行的观点相反,base R中有许多函数使用下划线。跑 grep("^[^\\.]*$", apropos("_"), value = T) 去看看他们。

    我用官方的 Hadley style

        4
  •  5
  •   Robert    15 年前

    我喜欢camelCase,因为camel实际上提供了一些有意义的东西——比如数据类型。

    dfProfitLoss,其中df=数据帧

    虽然我认为u确实增加了可读性,但在名称中使用。-u或其他字符似乎有太多问题。尤其是当你跨多种语言工作时。

        5
  •  3
  •   Shane    15 年前

    这可以归结为个人偏好,但我遵循谷歌风格指南,因为它与核心团队的风格一致。我还没有在baser中的变量中看到下划线。

        6
  •  3
  •   Community CDub    8 年前

    正如我在这里指出的:

    How does the verbosity of identifiers affect the performance of a programmer?

    值得记住的是,如果你的同事/用户是非母语人士,那么他们对你的变量名的理解程度有多高。。。

    出于这个原因,我想说下划线和句号比大写好,但正如您所指出的,一致性在脚本中是必不可少的。

        7
  •  2
  •   geoffjentry    15 年前

    正如其他人提到的,下划线会让很多人搞砸。不,它不是verboten,但也不是特别常见。

    使用点作为分隔符会让S3类等变得有点毛茸茸的。

        8
  •  1
  •   Jesse    15 年前

    mixedCapitals.mat是一个矩阵。 mixedCapitals.lst是一个列表对象。

    等等

        9
  •  1
  •   BenMorel Manish Pradhan    11 年前

    PSOE_投票 -&燃气轮机;PSOE(西班牙政治集团)的票数。

    PSOE_州 -&燃气轮机;分类,表示PSOE获胜的州(阿拉贡、安达卢西亚……)

    -&燃气轮机;范畴,表示PSOE各政治团体之间的立场(第一、第二、第三)

    PSOE_07 -&燃气轮机;2007年PSOE_投票联盟+PSOE_州+PSOE_政治力量(h eader->投票、州、立场 )

    如果我的变量是应用于一个/两个变量中的函数的结果,我将使用混合大小写。

    例子:

    位置状态 <-xtabs(~状态+位置,PSOE_07)