World: r4wp
[Rebol School] REBOL School
older newer | first last |
Maxim 3-Jul-2012 [545] | yes, you just need to adapt the paths you lookup. the sort func gets a pair of blocks which are the whole records, which is why I start with a /2 to get the second field, which is the block ... in your case, that would be the object |
Sujoy 3-Jul-2012 [546x3] | ok - thanks maxim trrying it now |
any luck with the new release of mod-web-api? | |
...and the json data structure? | |
Maxim 3-Jul-2012 [549] | the mod has been so heavily modified, its almost a complete rewrite. its also heavily embeded within our production environement (libs and stuff) so that making it a stand-alone mod again will take some time... some time which currently, I don't have. though note that we didin't actually add json support but greatly increased the flexibility of the i/o format conversion. |
Sujoy 3-Jul-2012 [550] | sounds great...since i'm a noob, not sure i can help, but will gladly pitch in |
Maxim 3-Jul-2012 [551x2] | we neededed to support, xml rest, SOAP and direct get/post interface to the same functions, and that is now working via a configuration, which allows you to tweak how the url is read and switch interfaces on the fly. |
I also added path support for the mod so that you can use the same domain for web and api services. | |
Sujoy 3-Jul-2012 [553x2] | wow - cool! |
any chance i can get to play with the code? | |
Maxim 3-Jul-2012 [555] | like I said , right now I can't rip it out easily because a lot of the code is shared with the code it serves (which is not part of the open source package). It wasn't built with the task of making it independent... but it can be done. It just takes time, which I currently don't have. |
Sujoy 3-Jul-2012 [556x3] | no worries - am happy to wait! |
sorry maxim - not having any luck with the sort function >> sf: func [a b][o: select a/attribs "1991-1992" m: select b/attribs "1991-1992" o/m > m/m ] >> sort/skip/compare/all comps 2 :sf ** Script Error: Invalid path value: attribs ** Near: o: select a/attribs "1991-1992" | |
help? | |
Henrik 3-Jul-2012 [559] | One of your objects does not have the 'attribs word. |
Sujoy 3-Jul-2012 [560] | this is the structure i'm using: h: #hash! [k-a object! [ name: "wonderwoman" attribs: make hash! ["1993-1994" #object! [ rebal-year: 1993 m: 160.018245 ] "1992-1993" #object! [ rebal-year: 1992 m: 104.293 ] "1991-1992" #object! [ rebal-year: 1991 m: 26.628 ] ] k-b object! [ name: "wonderwoman" attribs: make hash! ["1993-1994" #object! [ rebal-year: 1993 m: 160.018245 ] "1992-1993" #object! [ rebal-year: 1992 m: 104.293 ] "1991-1992" #object! [ rebal-year: 1991 m: 26.628 ] ] |
Henrik 3-Jul-2012 [561x2] | The first element in that has does not appear to be an object. |
that has = that hash | |
Sujoy 3-Jul-2012 [563x2] | yes - its actually a string |
shouldnt sort/skip/compare/all comps 2 :sf pick up the object? | |
Henrik 3-Jul-2012 [565x2] | I'm not sure if it's possible, but you may then need to use 4 parameters instead of 2 in the compare function. Then use the string/object pairs for comparison. |
I'm not certain that SKIP can be used with COMPARE. | |
Sujoy 3-Jul-2012 [567] | ah - so i should do: >> sf: func [a b c d] [ o: select b/attribs "1991-1992" m: select d/attribs "1991-1992" o/m > m/m] ?? |
Henrik 3-Jul-2012 [568] | Untested, but yes, that's what I meant. I really don't know if it works. |
Sujoy 3-Jul-2012 [569x2] | i get: >> sort/compare comps :sf ** Script Error: Invalid argument: ?function? ** Near: sort/compare comps :sf |
>> sort/compare/all comps :sf ** Script Error: Invalid argument: ?function? ** Near: sort/compare comps :sf | |
Arnold 3-Jul-2012 [571] | Back to the drawing board Sujoy and displaying the elements you want to use in your function piece by piece and maybe dump-obj is of any use? (Now you don't use a and c) |
Sujoy 3-Jul-2012 [572] | the sort/compare works great if its an object...am stuck because its a hash |
Henrik 3-Jul-2012 [573] | Testing your code. What is COMPS? |
Sujoy 3-Jul-2012 [574] | sorry - comps should be h - the hash |
Henrik 3-Jul-2012 [575] | ok, the sort function must only have 2 parameters. |
Sujoy 3-Jul-2012 [576] | not quite understanding how to use sort with this structure... |
Henrik 3-Jul-2012 [577] | The structure is a little strange. Are you trying to sort the outer hash or the inner hash? |
Sujoy 3-Jul-2012 [578x2] | both actually - need the outer hash sorted based on a property of the object inside the inner hash |
ideally, would like to keep the hash h intact for retrieval by the keys | |
Henrik 3-Jul-2012 [580] | The data you have pasted, contains two identical objects, so am not sure what the outcome is supposed to be. |
Sujoy 3-Jul-2012 [581x3] | here's the hash closer to reality: #[hash!["20Th Century Finance Corpn. Ltd. [Merged]" #[object! [ name: "20Th Century Finance Corpn. Ltd. [Merged]" mcapz: #[hash!["1993-1994" #[object! [ yyyymmdd: 30-Sep-1993 rebal-year: 1993 ln-mcap: 5.07528783998276 mcap: 160.018245 ltmto: 0 ]] "1992-1993" #[object! [ yyyymmdd: 30-Sep-1992 rebal-year: 1992 ln-mcap: 4.64720424566052 mcap: 104.293 ltmto: 0 ]] "1991-1992" #[object! [ yyyymmdd: 27-Sep-1991 rebal-year: 1991 ln-mcap: 3.28196329373846 mcap: 26.628 ltmto: 0 ]] "1996-1997" #[object! [ yyyymmdd: 30-Sep-1996 rebal-year: 1996 ln-mcap: 4.22786241308827 mcap: 68.5705 ltmto: 4.4951 ]] "1995-1996" #[object! [ yyyymmdd: 29-Sep-1995 rebal-year: 1995 ln-mcap: 4.6522555263423 mcap: 104.821146 ltmto: 1.9152 ]] "1994-1995" #[object! [ yyyymmdd: 30-Sep-1994 rebal-year: 1994 ln-mcap: 5.60133608288591 mcap: 270.787961 ltmto: 0 ]] "1999-2000" #[object! [ yyyymmdd: 1-Sep-1999 rebal-year: 1999 ln-mcap: #[none] mcap: #[none] ltmto: 0.3847 ]] "1998-1999" #[object! [ yyyymmdd: 30-Sep-1998 rebal-year: 1998 ln-mcap: 3.26596118430253 mcap: 26.205287 ltmto: 1.8029 ]] "1997-1998" #[object! [ yyyymmdd: 30-Sep-1997 rebal-year: 1997 ln-mcap: 3.70636432395486 mcap: 40.705545 ltmto: 4.0871 ]]]] ]] "3M India Ltd." #[object! [ name: "3M India Ltd." mcapz: #[hash!["1993-1994" #[object! [ yyyymmdd: 30-Sep-1993 rebal-year: 1993 ln-mcap: 5.2695189287062 mcap: 194.322457 ltmto: 0 ]] "1992-1993" #[object! [ yyyymmdd: 30-Sep-1992 rebal-year: 1992 ln-mcap: 5.16365007188814 mcap: 174.80133 ltmto: 0 ]] "1991-1992" #[object! [ yyyymmdd: 27-Sep-1991 rebal-year: 1991 ln-mcap: 5.13698182480598 mcap: 170.201295 ltmto: 0 ]] "1994-1995" #[object! [ yyyymmdd: 30-Sep-1994 rebal-year: 1994 ln-mcap: 5.67980332582336 mcap: 292.89182 ltmto: 0 ]] "1995-1996" #[object! [ yyyymmdd: 29-Sep-1995 rebal-year: 1995 ln-mcap: 5.36086870986747 mcap: 212.909823 ltmto: 2.438 ]] "1996-1997" #[object! [ yyyymmdd: 27-Sep-1996 rebal-year: 1996 ln-mcap: 5.29527142738166 mcap: 199.391739 ltmto: 13.7717 ]] "1999-2000" #[object! [ yyyymmdd: 30-Sep-1999 rebal-year: 1999 ln-mcap: 6.62266108574718 mcap: 751.943423 ltmto: 70.8157 ]] "1998-1999" #[object! [ yyyymmdd: 30-Sep-1998 rebal-year: 1998 ln-mcap: 5.59892693888198 mcap: 270.136379 ltmto: 12.1941 ]] "1997-1998" #[object! [ yyyymmdd: 30-Sep-1997 rebal-year: 1997 ln-mcap: 5.41116944722567 mcap: 223.893266 ltmto: 10.31 ]] "2002-2003" #[object! [ yyyymmdd: 30-Sep-2002 rebal-year: 2002 ln-mcap: 5.87169433363346 mcap: 354.849705 ltmto: 18.495901 ]] "2001-2002" #[object! [ yyyymmdd: 28-Sep-2001 rebal-year: 2001 ln-mcap: 5.70261800358953 mcap: 299.650862 ltmto: 17.817 ]] "2000-2001" #[object! [ yyyymmdd: 29-Sep-2000 rebal-year: 2000 ln-mcap: 6.51937914011665 mcap: 678.157214 ltmto: 39.9108 ]] "2003-2004" #[object! [ yyyymmdd: 30-Sep-2003 rebal-year: 2003 ln-mcap: 6.14402101757279 mcap: 465.923295 ltmto: 22.518454 ]] "2004-2005" #[object! [ yyyymmdd: 30-Sep-2004 rebal-year: 2004 ln-mcap: 6.36648735824138 mcap: 582.009842 ltmto: 18.47743 ]] "2005-2006" #[object! [ yyyymmdd: 30-Sep-2005 rebal-year: 2005 ln-mcap: 6.89448778574422 mcap: 986.820132 ltmto: 76.96006 ]] "2007-2008" #[object! [ yyyymmdd: 28-Sep-2007 rebal-year: 2007 ln-mcap: 7.61782530207882 mcap: 2034.13369 ltmto: 565.232151 ]] "2006-2007" #[object! [ yyyymmdd: 29-Sep-2006 rebal-year: 2006 ln-mcap: 7.29216005157061 mcap: 1468.739827 ltmto: 326.743221999999 ]] "2008-2009" #[object! [ yyyymmdd: 30-Sep-2008 rebal-year: 2008 ln-mcap: 7.3914506403371 mcap: 1622.057429 ltmto: 244.97382 ]] "2010-2011" #[object! [ yyyymmdd: 30-Sep-2010 rebal-year: 2010 ln-mcap: 8.40720356304076 mcap: 4479.217133 ltmto: 123.100087 ]] "2009-2010" #[object! [ yyyymmdd: 30-Sep-2009 rebal-year: 2009 ln-mcap: 7.58070461394744 mcap: 1960.009529 ltmto: 91.0568390000001 ]] "2011-2012" #[object! [ yyyymmdd: 30-Sep-2011 rebal-year: 2011 ln-mcap: 8.45073201719186 mcap: 4678.496222 ltmto: 282.168385 ]]]] ]] |
i need to sort the hash based on a param (mcap) for an input year (say "1991-1992") | |
then do things like 1. select the top 50% 2. calculate interquartile ranges etc. | |
Henrik 3-Jul-2012 [584] | Why do the brackets not match... |
Sujoy 3-Jul-2012 [585] | apologies again - extracted this fragment from a gzillion mb file - there should be ]]]] at the end |
Henrik 3-Jul-2012 [586] | aha, skipping does work, but the comparison happens on the strings instead of the objects. |
Sujoy 3-Jul-2012 [587x2] | yes... >> sort/skip/compare/all comps 2 func [a b][a > b ] ..sorts in reverse order |
i cant seem to reference the object! | |
Henrik 3-Jul-2012 [589] | is MCAPZ the same as ATTRIBS? |
Sujoy 3-Jul-2012 [590x3] | yes |
if i do: >> sort/skip/compare/all comps 2 func [a b][length? a/mcapz > length? b/mcapz ] i get an invalid path error | |
and what i need to do is more complex than that :( | |
Henrik 3-Jul-2012 [593] | you can do a REVERSE H before and after the sorting. That allows SORT to grab the objects. |
Sujoy 3-Jul-2012 [594] | let me try... |
older newer | first last |