R - это прежде всего функциональный язык программирования. У него есть некоторые исключения, когда делаются побочные эффекты, поэтому он не настолько функциональен, как Haskell. Тем не менее, если вы не хотите адаптировать свой стиль программирования для использования функций, вам будет довольно сложно писать эффективный R-код. (Единственная причина, по которой я пишу этот ответ, - это то, что вызов R объектно-ориентированным языком будет вводить в заблуждение людей, которые приходят к нему, ожидая, что сможет отправлять функциональные сообщения объектам данных так же, как и с Java. R использует класс объекта как механизм выбора отправки для «общих» функций, но это не та же парадигма, что и полные OO-языки.)
R имеет три, четыре или пять основных классов объектов в зависимости от того, как вы думаете о них и связанных функциональных типах. Исходные функции S3, которые отправляются только по классу их первых аргументов, вероятно, все еще наиболее часто используются, хотя S4-класс, который может отправлять несколько сигнатурных сигнатур, широко используется в мире BioConductor. Объекты с эталонным классом или R5 или прото-классифицируются как наиболее похожие типы объектов объектно-ориентированного программирования. В этом последнем предложении я немного расплывчата, потому что мне не хватает опыта с ними.
SAS - это прежде всего процедурный язык. Вы можете определять функции, но не так, как большинство людей взаимодействуют с SAS и его наборами данных по крайней мере поначалу. По крайней мере, когда я использовал его 15 лет назад, у него действительно не была объектная модель. Я бы сказал, что его основным преимуществом является превосходная поддержка «написания отчета».
(Комментарий, что манипулирование данными является «трудным в R», просто указывает на недостаток опыта. Объем кода, который мне нужен для обработки данных в R, намного меньше кода, используемого моими коллегами из SAS. Если вы начали программировать в SAS, то конверсия будет сложной, но те из нас, кто изменился, вообще застряли с R.)
Я могу вам дать то, что Хэдли Уикхем думает о вашем вопросе, прочитайте [здесь] (http://adv-r.had.co.nz/Functional-programming. HTML). – SabDeM
Можно разделить этот вопрос на два, поскольку R и SAS совершенно разные, особенно когда речь идет о объектно-ориентированном программировании. – C8H10N4O2