2014-03-05 9 views
15

Mein Weg auf L in R:Klärung von L in R

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 
# i cannot search document for L by ?L 

Was ist in der Tat x[<n>L]? Ein Beispiel für die weitere Verwendung?

+4

Sie können über 'L' auf p lesen. 14 [** hier **] (http://cran.r-project.org/doc/manuals/r-release/R-lang.pdf). "Wir können das Suffix" L "verwenden, um eine beliebige Zahl zu qualifizieren, um sie zu einer expliziten Ganzzahl zu machen". Ich dachte, ich würde etwas über 'L' auf' 'as.integer' finden, aber nein. – Henrik

+0

Hier ist ein direkter Link zu dem, worauf sich @Henrik bezieht: http://cran.r-project.org/doc/manuals/R-lang.html#Constants – Thomas

+0

Danke! Also L ist hauptsächlich, um sicherzustellen, dass die Klasse der Zahl, die wir eingeben, ganzzahlig statt numerisch ist? jede weitere Verwendung für L? – useR

Antwort

21

Diese Antwort ist eine Zusammenfassung der obigen Kommentare. Es ist im Grunde nur ein Hinweis auf verschiedene Hilfstexte, aber wie aus dem OP-Versuch mit ?L hervorgeht, ist es nicht immer einfach, den entsprechenden Hilfetext zu finden. Ich habe erwartet, etwas über L in ?as.integer zu finden, aber nein. Hoffentlich ist diese Antwort nützlicher als ein Stapel Kommentare.

  • In der R language definition finden Sie: "Wir können verwenden, um die L Suffix eine beliebige Anzahl mit der Absicht, sich zu qualifizieren es eine explizite integer machen"
  • Von ?NumericConstants: „[...] All andere numerische konstanten beginnen mit einer Ziffer oder Zeit und sind entweder eine Dezimalzahl oder hexadezimale konstant gegebenenfalls gefolgt von L

    “ eine numerische konstante, unmittelbar gefolgt von L ist r als ganze Zahl, wenn möglich (und mit einer Warnung, wenn sie eine enthält "."). "

    "Sie können das Präfix" 0x "mit dem Suffix" L "kombinieren.

  • Sie können es auch nützlich finden, die Beispiele auf Gleitkommazahl vs. Integer in dem Abschnitt "Two Kinds Revisited" here zu überprüfen. "Setzen Sie das Kapital L (wie in" long ") nach einer Zahl, um R als eine ganze Zahl zu erstellen".
  • Nicht speziell über L, aber immer relevant in der Gleitkomma vs ganze Zahlen Kontext ist FAQ7.31: "Warum denkt R nicht, dass diese Zahlen gleich sind?".

Update: Themen mit Diskussionen über die Effizienz der L

Themen auf R-Hilfe, wo andere zu kämpfen haben Dokumentation über L, mit einer möglichen Erklärung zu finden, warum der Brief L, und warum L vs as.integer in Bezug auf Effizienz.

  1. Difference between 10 and 10L

    Erste William Dunlap:

    Warum nicht 10I für integer? Vielleicht weil "I" und "l" zu ähnlich aussehen, vielleicht weil "i" und "I" zu ähnlich klingen. Die "L" bedeutet nicht "lang": Ganzzahlen sind 4 Bytes lang.

    Dann Brian Ripley:

    Eigentlich tut es: Diese Schreibweise stammt aus der Sprache C auf 16-Bit- Computern, auf denen ganze Zahlen waren 16-Bit und longs wurden 32-bit (und R kein 'langer' Typ).

    Der Autor dieses in R nie erklärt, warum er die Schreibweise gewählt hat, aber es ist kürzer als as.integer(10) und effizienter als Zwang zur Analysezeit getan.

  2. The L Word
    Diskussion über die Effizienz in verschiedenen Situationen, mit einigen Benchmarkings.

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

  4. Weitere Diskussionen here.

+0

Vielen Dank für Ihre Zusammenfassung. Da ich viele eingebaute Funktionen wie table() auch im Quelltext verwende. Danke noch einmal. – useR