我是一名统计学研究生,他与R一起工作很多.我在其他编程环境中熟悉OOP.我甚至看到它在各种统计包中的使用,这些包定义了用于存储数据的新类.
在我毕业生的这个阶段,我通常会编写一些算法来进行某些类的分配 - 这需要原始数据并提供某种输出.我希望能够更容易地重用代码,并建立良好的编码习惯,特别是在我进行更多涉及的研究之前.请在R中进行统计编程时提供一些关于如何"思考OOP"的建议.
我认为你不应该这样做.尝试在工作流程方面考虑R. 此页面上有一些有用的工作流程建议:
另一个重要的考虑因素是逐行分析与可重复研究.这里有一个很好的讨论:
OOP的两个方面是数据和对数据进行操作的泛型/方法.
数据(尤其是作为分析输出的数据)通常由结构化和相互关联的数据帧或其他对象组成,并且希望以协调的方式管理这些数据.因此,OOP的类概念,作为组织复杂数据的一种方式.
泛型和实现它们的方法表示对数据执行的常见操作.当一组泛型在概念上相关的类中一致地运行时,它们的实用性就来了.也许一个合理的例子是lm/glm作为类的输出,以及作为泛型和方法的摘要,anova,预测,残差等的实现.
许多分析遵循熟悉的工作流程; 这里有一个类和方法的用户,并获得协调数据+熟悉的泛型的好处.思考'OOP'可能会引导您探索对象的方法,methods(class="lm")而不是它的结构,并可能帮助您构建工作流程,以便它们遵循已定义的类和方法的明确定义的通道.
实现一种新颖的统计方法,人们可能会考虑如何将结果组织成一个表示为新类的连贯的,相互关联的数据结构,并编写与类似类的已建立方法相对应的类的方法.在这里,人们可以通过便于后续计算的方式在内部表示数据,而不是用户可能想要"看到"它(将表示与接口分开).对于您的班级用户(如Chambers所说,经常自己),在现有工作流程中使用新班级很容易.
在'如何OOP'之前询问'为什么是OOP'是一个有用的问题.
我对如何有效使用 R 的了解有限,但这里有一篇文章甚至让我能够以 OO 方式逐步使用 R:
http://www.ibm.com/developerworks/linux/library/l-r3/index.html