Функции группировки (tapply, by, aggregate) и семейство * apply

Он не показывает мне атрибуты суперкласса:

>>> class A(object):
    def a(self):
        print a
    b = 3

>>> a = A()
>>> dir(a)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b']
>>> list(a.__class__.__dict__)
['a', '__module__', 'b', '__dict__', '__weakref__', '__doc__']

__module__, __dict__, __weakref__, __doc__ кажутся атрибутами, созданными для каждого класса по умолчанию.

Этот список атрибутов по умолчанию отличается для классов старого стиля:

>>> class B:
    pass

>>> list(B().__class__.__dict__)
['__module__', '__doc__']
985
задан zx8754 3 October 2018 в 06:39
поделиться

1 ответ

Кстати, вот как различные функции plyr соответствуют базовым * применяемым функциям (из Введение в документ plyr с веб-страницы plyr http://had.co.nz/plyr/ )

Base function   Input   Output   plyr function 
---------------------------------------
aggregate        d       d       ddply + colwise 
apply            a       a/l     aaply / alply 
by               d       l       dlply 
lapply           l       l       llply  
mapply           a       a/l     maply / mlply 
replicate        r       a/l     raply / rlply 
sapply           l       a       laply 

Одна из целей plyr - обеспечить согласованные соглашения об именах для каждого функций, кодируя типы входных и выходных данных в имени функции. Он также обеспечивает согласованность вывода, так как вывод из dlply () легко передается в ldply () для получения полезного вывода и т. Д.

Концептуально, обучение plyr не сложнее, чем понимание базовых * применяемых функций. Функции

plyr и reshape заменили почти все эти функции в моем повседневном использовании. Но также из документа Intro to Plyr:

Связанные функции tapply и sweep не имеют соответствующей функции в plyr и остаются полезными. merge полезен для объединения сводок с исходными данными.

184
ответ дан 19 December 2019 в 20:21
поделиться