Два аспекта ООП - это данные и универсальные методы / методы, которые работают с данными.
Данные (особенно данные, являющиеся результатом анализа) часто состоят из структурированных и взаимосвязанных фреймов данных или других объектов, и каждый хочет управлять ими скоординированным образом. Отсюда концепция ООП классов как способ организации сложных данных.
Обобщения и методы, которые их реализуют, представляют собой общие операции, выполняемые с данными. Их полезность возникает, когда набор обобщенных элементов работает согласованно в концептуально связанных классах. Возможно, разумным примером является вывод lm / glm в виде классов и реализация итогов, anova, прогнозирования, остатков и т. Д. В качестве обобщений и методов.
Многие анализы следуют за привычными рабочими процессами; здесь один пользователь классов и методов и получает выгоду от скоординированных данных + знакомых обобщений. Мышление «ООП» может привести вас к изучению методов объекта, methods(class="lm")
, а не его структуры, и может помочь вам структурировать рабочие потоки так, чтобы они следовали четко определенным каналам установленных классов и методы.
Реализуя новую статистическую методологию, можно подумать о том, как организовать результаты в согласованную, взаимосвязанную структуру данных, представленную в виде нового класса, и написать методы для класса, которые соответствуют установленным методам в похожих классах. Здесь можно представить данные внутренне таким образом, который удобен для последующих вычислений, а не так, как пользователь может захотеть «увидеть» их (отделяя представление от интерфейса). И пользователю вашего класса легко (как часто говорит сам Чамберс) использовать новый класс в существующих рабочих процессах.
Полезно задать вопрос «почему ООП» перед «как ООП».