Пытаясь понять базовый R «Bizarro pipe», описанный в блоге Win Vector, я подтвердил, что простые примеры создают конвейерное поведение в R без установленных пакетов. Например:

> 2  ->.; exp(.)
[1] 7.389056

Я обнаружил, что точка используется как оператор в plyr и magrittr. Я потратил пару часов на поиск в базе R каждого синонима, который я мог придумать для оператора точки, со всеми инструментами помощи, которые я знал; Я даже провел несколько нелепых поисков по регулярным выражениям. Наконец, в отчаянии я попробовал вот что:

>. <- 27
>.
[1] 27

До сих пор мне не удалось опровергнуть тот факт, что голая точка, даже без символа `` к ее имени '', является допустимым именем переменной в R. Но я все еще надеюсь, что это всего лишь побочный эффект от более разумного поведения, задокументированного где-то.

Это? И если да, то где?

Я признаю, что при первом появлении в блоге Win Vector авторы определили его как шутку.

12
andrewH 23 Дек 2017 в 10:09

1 ответ

Лучший ответ

. может использоваться как допустимое имя объекта (синтаксически допустимое имя) и задокументировано здесь:

Синтаксически допустимое имя состоит из букв, цифр и точки или подчеркивание символов и начинается с буквы или точки, за которой не следует числом. "(из руководства make.names).

Одиночная точка соответствует «точке, за которой не следует число».

3
mt1022 26 Мар 2018 в 01:08