web-dev-qa-db-ja.com

RのLの明確化

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[<n>L]とは実際には何ですか?それをさらに使用するための例はありますか?

26
useR

この回答は、上記のコメントの要約です。これは基本的にさまざまなヘルプテキストへのポインタにすぎませんが、OPが_?L_を試みたことから明らかなように、関連するヘルプテキストを見つけるのは必ずしも簡単ではありません。 _?as.integer_でLについて何かを見つけることを期待していましたが、そうではありませんでした。うまくいけば、この回答はコメントの山よりも役立つでしょう。

  • R言語の定義 には、次のように表示されます。「Lサフィックスを使用して任意の数を修飾できます明示的な整数にすることを目的としています」
  • From _?NumericConstants_: "[...]他のすべての数値定数は数字またはピリオドで始まり、オプションでLが後に続く10進数または16進数の定数です。"

    「数値定数の直後にLが続く場合は、可能な場合は整数と見なされます(また、「。」が含まれている場合は警告が表示されます)。」

    「「_0x_」プレフィックスと「L」サフィックスを組み合わせることができます」。

  • また、「2種類の再検討」のセクションで浮動小数点と整数の例を確認すると便利な場合があります here 。 「数値の後に大文字のL(「long」のように)を入れて、Rに整数として作成させます」。
  • 特にLについてではありませんが、浮動小数点と整数のコンテキストで常に関連するのは FAQ7.31 :「なぜRはこれらの数が等しいと思わないのですか?」.

Lの効率について議論しているスレッド

Rのスレッド-他の人がLに関するドキュメントを見つけるのに苦労している場合、文字Lの理由、およびLと_as.integer_の理由の説明が含まれています。効率の面。

  1. 10と10Lの違い

    最初のウィリアム・ダンラップ:

    整数の場合は_10I_ではないのはなぜですか? 「I」と「l」の音が似すぎているためか、「i」と「I」の音が似すぎているためかもしれません。 「L」は「長い」という意味ではありません。整数は4バイトの長さです。

    次に、ブライアン・リプリー:

    実際にはそうです。この表記は、整数が16ビットでlongが32ビットである16ビットコンピューターのC言語に由来します(Rには「long」型がありません)。

    Rのこの作者は、なぜ表記を選択したのか説明していませんが、as.integer(10)よりも短く、強制が解析時に行われるため、より効率的です

  2. Lの世界
    いくつかのベンチマークを使用して、さまざまな状況での効率についての議論。

  3. R履歴:なぜ 'L;整数定数の接尾辞文字「L」に?

  4. その他の議論 ここ

35
Henrik