Мой след на 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
с точки зрения эффективности.
Разница между 10 и 10л
Первый Уильям Данлэп:
Почему не 10I
для целого числа? Возможно, потому что "I
" и "l
" выглядят слишком похожими, возможно, потому что "i
" и "I
" звучат слишком похоже. "L
" не означает "длинный": целые числа имеют длину 4 байта.
Затем Брайан Рипли:
На самом деле это так: это обозначение датируется языком C на 16-битном компьютеры, где целые числа были 16-битными, а длинные - 32-битными (а R имеет нет "длинного" типа.
Автор этого в R никогда не объяснял, почему он выбрал обозначение, но он короче, чем as.integer(10)
, и более эффективен, поскольку принуждение сделано в разбор.
L Слово
Обсуждение эффективности в различных ситуациях с некоторыми сравнительными тестами.
R история: почему 'L; в суффиксном символе ‘L для целочисленных констант?
Больше обсуждений здесь.