【问题标题】:Clarification of L in RR中L的澄清
【发布时间】:2014-04-07 03:09:20
【问题描述】:

我在 R 中 L 的踪迹是:

c<-1:10
c
# [1]  1  2  3  4  5  6  7  8  9 10
c[-1]
# [1]  2  3  4  5  6  7  8  9 10
c[-2]
# [1]  1  3  4  5  6  7  8  9 10
c[-1L]
# [1]  2  3  4  5  6  7  8  9 10
c[-2L]
# [1]  1  3  4  5  6  7  8  9 10

我尝试使用?L 没有成功。

x[&lt;n&gt;L] 到底是什么?有没有进一步使用的例子?

【问题讨论】:

  • 您可以在第 1 页阅读有关 L 的信息。 14here。 “我们可以使用L 后缀来限定任何数字,以使其成为显式整数”。我以为我会在 ?as.integer 上找到有关 L 的信息,但没有。
  • 这是@Henrik 所指内容的直接链接:cran.r-project.org/doc/manuals/R-lang.html#Constants
  • 谢谢!那么L主要是为了保证我们输入的数字的类别是整数而不是数字? L还有什么用法吗?

标签: r integer numeric


【解决方案1】:

这个答案是上面cmets的总结。它基本上只是指向各种帮助文本的指针,但从 OP 对?L 的尝试中可以明显看出,找到相关的帮助文本并不总是那么容易。我期待在?as.integer 中找到有关L 的信息,但没有。希望这个答案比一堆 cmets 更有用。

  • R language definition 你会发现:“我们可以使用L 后缀来限定任何数字 意图使其成为一个明确的整数”

  • 来自?NumericConstants:“[...] 所有其他数字常量开始 带有数字或句点,并且是十进制或十六进制 常量可选地后跟L"

    "紧跟L的数字常量被视为 可能时的整数(如果它包含 “。”)。”

    “您可以将“0x”前缀与“L”后缀组合起来。

  • 您可能还会发现检查浮点示例很有用 与“重访两种”部分中的整数 here。 “将大写L(如“long”)放在数字后,使R创建为 一个整数”。

  • L 无关,但始终与浮点相关 vs. 整数上下文是 FAQ7.31:“为什么 R 认为这些数字不相等?”。


讨论L效率的线程:

R-help 上的线程,其他人难以找到有关 L 的文档,并可能解释为什么字母 L,以及为什么在效率方面 Las.integer 相比。

  1. Difference between 10 and 10L

第一威廉·邓拉普:

为什么不用10I 表示整数?也许是因为“I”和“l”看起来太相似了,也许是因为“i”和“I”听起来太相似了。 “L”并不意味着“长”:整数是 4 个字节长。

然后是布赖恩·里普利:

实际上是这样:这个符号可以追溯到 16 位的 C 语言 整数为 16 位,长整数为 32 位的计算机(而 R 有 没有“长”类型)。

R 中 this 的作者从来没有解释过他为什么选择这个符号,但是 它比as.integer(10) 短,并且更有效,因为强制是 在解析时完成

  1. The L Word
    讨论不同情况下的效率,并进行一些基准测试。

  2. R history: Why 'L; in suffix character ‘L’ for integer constants?

  3. 更多讨论here

【讨论】:

  • 感谢您的总结。我发现许多像 table() 这样的内置函数也在源代码中使用它。再次感谢。
  • 在书中Efficient R Programming,Colin Gillespie 说LLiteral。尽管此声明没有提供其他参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
  • 2020-07-30
  • 2020-04-02
  • 2019-11-15
  • 2013-06-05
  • 2013-07-30
相关资源
最近更新 更多