Вопрос
В таких пакетах, как Маррей и лимма, Когда сложные объекты загружаются, они содержат «переменные элементов», которые доступны с использованием символа @. Что это значит и чем он отличается от символа $?
Решение
Видеть ?'@'
:
Описание:
Извлеките содержимое слота в объект с формальной (S4) структурой класса.
Применение:
object@name
...
Язык S имеет две объектные системы, известные неформально как S3 и S4.
- S3 объекты, классы и методы были доступны в R с самого начала, они неформальны, но еще очень интерактивноАнкет S3 был впервые описан в Белая книга (Статистические модели в S).
- S3 не является реальной системой класса, в основном это набор соглашений об именах.
- Объекты, классы и методы S4 гораздо более формальны и строгие, следовательно, менее интерактивно. Анкет S4 был впервые описан в Зеленая книга (Программирование с данными). В R это доступно через
methods
Пакет, прикрепленный по умолчанию с версии 1.7.0.
Смотрите также этот документ: S4 классы и методы.
Другие советы
Как сказали другие, символ @ используется с классами S4, но вот примечание от Руководство по стилю Google R: «Используйте объекты и методы S3, если нет веской причины для использования объектов или методов S4».
Вы захотите прочитать на классах S4, которые используют символ @.