Уточнение L в R

Мой след на L в 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

Я безуспешно пытался использовать ?L.

Что на самом деле является x[<n>L]? Любой пример для дальнейшего использования?

Ответ 1

Этот ответ является резюме комментариев выше. В основном это просто указатели на различные тексты справки, но, как видно из попытки OP с ?L, не всегда легко найти соответствующий текст справки. Я ожидал найти что-нибудь о L в ?as.integer, но нет. Надеюсь, этот ответ более полезен, чем куча комментариев.

  • На языке R определение вы найдете: "Мы можем использовать суффикс L для определения любого числа с намерением сделать его явным целым числом "
  • С ?NumericConstants: "[...] Все остальные числовые константы начинаются с цифрой или точкой и являются десятичным или шестнадцатеричным за константой необязательно следует L "

    "Числовая константа, за которой сразу следует L, рассматривается как целое число, когда это возможно (и с предупреждением, если оно содержит ". ")."

    "Вы можете комбинировать префикс" 0x "с суффиксом" L "".

  • Вам также может быть полезно проверить примеры с плавающей запятой против целых чисел в разделе "Возвращение двух видов" здесь. "Поместите капитал L (как в" long ") после числа, чтобы R создал его как целое число ".
  • Не конкретно о L, но всегда актуально в плавающей точке Контекст против целых чисел: FAQ7.31: "Почему R не считает, что эти числа равны?".

Темы с обсуждением эффективности L:

Темы о R-help, где другие пытались найти документацию о L, с возможным объяснением того, почему буква L и почему L против as.integer с точки зрения эффективности.

  1. Разница между 10 и 10л

    Первый Уильям Данлэп:

    Почему не 10I для целого числа? Возможно, потому что "I" и "l" выглядят слишком похожими, возможно, потому что "i" и "I" звучат слишком похоже. "L" не означает "длинный": целые числа имеют длину 4 байта.

    Затем Брайан Рипли:

    На самом деле это так: это обозначение датируется языком C на 16-битном компьютеры, где целые числа были 16-битными, а длинные - 32-битными (а R имеет нет "длинного" типа.

    Автор этого в R никогда не объяснял, почему он выбрал обозначение, но он короче, чем as.integer(10), и более эффективен, поскольку принуждение сделано в разбор.

  2. L Слово
    Обсуждение эффективности в различных ситуациях с некоторыми сравнительными тестами.

  3. R история: почему 'L; в суффиксном символе ‘L для целочисленных констант?

  4. Больше обсуждений здесь.