Something interesting about missing values and data-structure to represent them like shadow matrix:
https://github.com/njtierney/naniar?utm_content=buffer26e7b Some month ago, I build a Roassal viz in order to see missing values in CSV file: https://twitter.com/SergeStinckwich/status/705839378917167104 On Thu, Dec 22, 2016 at 9:34 AM, stepharong <stephar...@free.fr> wrote: > > > Yes I see. I will keep thinking about it. > > > On Wed, 21 Dec 2016 20:58:26 +0100, Tudor Girba <tu...@tudorgirba.com> > wrote: > >> Hi, >> >>> On Dec 21, 2016, at 3:05 PM, stepharong <stephar...@free.fr> wrote: >>> >>> >>> >>>> Hi Alex, >>>> >>>> Following the design proposed by Stef, in your case you would use a >>>> different collection. >>> >>> >>> Doru I have multiple missingValue so that they embed their own strategy. >>> Now I do not know for the scenario of alex. >> >> >> Yes, yes. And that is great. >> >> It seemed to me that Alex wanted to find from the collection the elements >> that have a MissingValue, and for that he wants to use collect:. But, your >> collection collect: ignores the MissingValue. That is why I thought that he >> can serve his case with another collection type. >> >> Cheers, >> Doru >> >> >>>> >>>> Cheers, >>>> Doru >>>> >>>> >>>>> On Dec 21, 2016, at 8:13 AM, Alexandre Bergel <alexandre.ber...@me.com> >>>>> wrote: >>>>> >>>>> Hi Stef, >>>>> >>>>> You are raising an interesting point to discuss. This MissingValue is >>>>> indeed better than having -1 >>>>> Something to keep in mind: it may be that one would like to focus on >>>>> the missing value and not really the value. >>>>> >>>>> Consider: >>>>> >>>>>> testCollect >>>>>> >>>>>> | uarray collected | >>>>>> uarray := UniformOrderedCollection new. >>>>>> uarray add: 10. >>>>>> uarray add: 20. >>>>>> uarray add: (MissingValue discarding). >>>>>> collected := uarray collect: [ :each | each ]. >>>>>> self assert: collected size equals: 2. >>>>> >>>>> >>>>> It could well be that I would like to be able to query over the >>>>> MissingValue. >>>>> Can something like possible: uarray collect: #isMissing >>>>> ? >>>>> >>>>> Cheers, >>>>> Alexandre >>>>> >>>>> >>>>>> On Dec 20, 2016, at 10:15 PM, stepharong <stephar...@free.fr> wrote: >>>>>> >>>>>> Hi dear great OO designers >>>>>> >>>>>> Here is a little challenges for your brainy souls :) >>>>>> >>>>>> In Moose when we compute metrics it may happen than a tool (often >>>>>> external to pharo) does not compute a metrics >>>>>> and when we request it in moose we check and often we return a not so >>>>>> good -1. >>>>>> >>>>>> I'm trying to brainstorm on a solution >>>>>> >>>>>> - first may be the simplest way is to not invoke a metrics when it is >>>>>> not computed. But it means that we should know it and that we should >>>>>> have a >>>>>> registration mechanism. After all this is probably the best solution. >>>>>> >>>>>> - Second we were thinking to use exception but when we have multiple >>>>>> entities missing one metrics.... I have serious doubts. >>>>>> >>>>>> - Second I was thinking about having the following behavior >>>>>> >>>>>> testCollect >>>>>> >>>>>> | uarray collected | >>>>>> uarray := UniformOrderedCollection new. >>>>>> uarray add: 10. >>>>>> uarray add: 20. >>>>>> uarray add: (MissingValue discarding). >>>>>> collected := uarray collect: [ :each | each ]. >>>>>> self assert: collected size equals: 2. >>>>>> >>>>>> testDo >>>>>> >>>>>> | res uarray | >>>>>> uarray := UniformOrderedCollection new. >>>>>> uarray add: 10. >>>>>> uarray add: 20. >>>>>> uarray add: (MissingValue discarding). >>>>>> uarray add: 40. >>>>>> res := 0. >>>>>> uarray do: [ :each | res := res + each ]. >>>>>> self assert: res equals: 70. >>>>>> >>>>>> >>>>>> testCollectDefaulting >>>>>> >>>>>> | uarray collected | >>>>>> uarray := UniformOrderedCollection new. >>>>>> uarray add: 10. >>>>>> uarray add: 20. >>>>>> uarray add: (MissingValue default: 33). >>>>>> collected := uarray collect: [ :each | each ]. >>>>>> self assert: collected size equals: 3. >>>>>> self assert: collected third equals: 33 >>>>>> >>>>>> >>>>>> I basically started to implement >>>>>> >>>>>> >>>>>> do: aBlock >>>>>> "Refer to the comment in Collection|do:." >>>>>> 1 to: self size do: >>>>>> [:index | (self at: index) toDo: aBlock on: self] >>>>>> >>>>>> >>>>>> >>>>>> collect: aBlock >>>>>> "Evaluate aBlock with each of the receiver's elements as the >>>>>> argument. >>>>>> Collect the resulting values into a collection like the >>>>>> receiver. Answer >>>>>> the new collection." >>>>>> >>>>>> | newCollection | >>>>>> newCollection := self species new. >>>>>> self >>>>>> do: [ :each | each toCollect: aBlock on: newCollection >>>>>> ]. >>>>>> ^ newCollection >>>>>> >>>>>> >>>>>> and >>>>>> >>>>>> DiscardingValue >> toCollect: aBlock on: aCollection >>>>>> "discard computation" >>>>>> ^ self >>>>>> >>>>>> >>>>>> Object >> toCollect: aBlock on: aCollection >>>>>> >>>>>> ^ aCollection add: (aBlock value: self) >>>>>> >>>>>> >>>>>> So I imagine that you see the design and I wanted to get your point of >>>>>> view. >>>>>> >>>>>> -- >>>>>> Using Opera a kind of bad mail client but far better than thunderbird >>>>>> _______________________________________________ >>>>>> Moose-dev mailing list >>>>>> moose-...@list.inf.unibe.ch >>>>>> https://www.list.inf.unibe.ch/listinfo/moose-dev >>>>> >>>>> >>>>> -- >>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >>>>> Alexandre Bergel http://www.bergel.eu >>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Moose-dev mailing list >>>>> moose-...@list.inf.unibe.ch >>>>> https://www.list.inf.unibe.ch/listinfo/moose-dev >>>> >>>> >>>> -- >>>> www.tudorgirba.com >>>> www.feenk.com >>>> >>>> "If you interrupt the barber while he is cutting your hair, >>>> you will end up with a messy haircut." >>>> >>>> >>> >>> >>> -- >>> Using Opera's mail client: http://www.opera.com/mail/ >> >> >> -- >> www.tudorgirba.com >> www.feenk.com >> >> “The smaller and more pervasive the hardware becomes, the more physical >> the software gets." >> > > > -- > Using Opera's mail client: http://www.opera.com/mail/ > _______________________________________________ > Moose-dev mailing list > moose-...@list.inf.unibe.ch > https://www.list.inf.unibe.ch/listinfo/moose-dev -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/