R中L的澄清

R中L的澄清,r,integer,numeric,R,Integer,Numeric,我在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 c这个答案是对上述评论的总结。它基本上只是指向各种帮助文本

我在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

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

  • 在 您会发现:“我们可以使用
    L
    后缀来限定任何数字 目的是使其成为一个显式整数“
  • ?数值常量
    :“[…]所有其他数值常量开始 带数字或句点,并且是十进制或十六进制 常量可选择后跟
    L

    紧跟着
    L
    的数值常量被视为 可能时为整数(如果包含 “)”

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

  • 您可能还会发现,检查有关浮点的示例也很有用 与“两种重温”一节中的整数相比 . 将大写字母
    L
    (如“long”)放在数字后面,使R成为 整数”
  • 不是专门针对
    L
    ,而是始终与浮点相关 与整数相比,上下文是:“为什么R不认为这些数字相等?”

讨论
L
效率的线程:

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

  • 威廉·邓拉普:

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

    然后布莱恩·里普利:

    事实上是这样的:这种表示法起源于16位的C语言 整数为16位,长为32位的计算机(R为 没有“长”类型)

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


  • 讨论不同情况下的效率,以及一些基准

  • 更多的讨论


  • 您可以在第页阅读关于
    L
    。14 . “我们可以使用
    L
    后缀限定任何数字,以使其成为显式整数”。我想我会在
    ?as.integer
    上找到一些关于
    L
    的信息,但是没有。这里有一个指向@Henrik所指内容的直接链接:谢谢!那么L主要是为了确保我们输入的数字类是整数而不是数字?L还有其他用法吗?谢谢你的总结。正如我发现的,许多内置函数,如table()也在源代码中使用了它。再次感谢。在书中,科林·吉列斯皮说,
    L
    是字面意思。不过,本声明未提供其他参考。