Я просто читаю книгу "R в двух словах". И кажется, что я пропустил часть, где "." как в "sample.formula" было объяснено.
> sample.formula <- as.formula(y~x1+x2)
Образец - это объект с формулой поля, как в других языках? И если так, как я могу узнать, какие еще поля / функции у этого объекта? (Объявление типа)
РЕДАКТИРОВАТЬ: я только что нашел другое запутанное использование ".":
> svm(formula = is_spam~., data = spambase.training)
(точка между ~.,)
.
в формуле R указывает использовать все переменные в кадре данныхspambase.training
(кромеis_spam
) в качестве предикторов. Модель подходит для .y ~ 1
Ответы:
Точку можно использовать как в обычном названии. Однако он имеет дополнительную специальную интерпретацию. Предположим, у нас есть объект с определенным классом:
Теперь объявите
myfunction
как стандартное обобщение следующим образом:Теперь объявите функцию
Тогда точка имеет особое значение. Для всех объектов с
myclass
вызовом классана самом деле вызовет функцию
myfunction.myclass
:Это широко используется в R, наиболее подходящим примером является функция
summary
. Каждый класс имеет свою собственнуюsummary
функцию, поэтому, когда вы подходите, например, к какой-либо модели (которая обычно возвращает объект с определенным классом), вам нужно вызвать ее,summary
и она вызовет соответствующую сводную функцию для этой конкретной модели.источник
...
(которое представляет собой одну лексему, а не последовательность из трех разных) как «точка», тогда как вопрос явно означает точку, которая.
используется в формулах и именах совершенно по-другому, как правильно описано в современной ответ Чейзом.Посмотрите на странице справки
?formula
в отношении.
Вот соответствующие биты:С другой стороны ,
reshape
иreshape2
пакеты используют.
и...
немного по- другому (от?cast
):источник
Есть некоторые исключения (диспетчеризация метода S3), но, как правило, они просто используются как вспомогательные средства для чтения и, как таковые, не имеют особого значения.
источник
.
. Это относится к именам функций. Что касается имен (нефункциональных) объектов, то да, особого смысла нет..
делает объект невидимым дляls()
хотя.Точка в sample.formula не отделяет образец от формулы , кроме как визуально. Это просто имя переменной. Имена переменных R могут состоять из буквенно-цифровых символов и точки (.) И подчеркивания (_) с одним исключением. Вот собственно правило:
« Синтаксически допустимое имя состоит из букв, цифр и точки или подчеркивания и начинается с буквы или точки, за которой не следует число. Такие имена, как« .2way », недопустимы и не являются зарезервированными словами ».
Второй случай (т. Е. Случай is_spam ~. ) Отличается и объясняется выше.
источник