Rudy De Vrieze Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 voor een statistiek heb ik een berekening nodig van het mediaangetal. Bij mijn weten voorziet FileMaker niet in deze functie. Heeft er iemand een bruikbaar script? of een suggestie voor ondergetekende beginner Bean Quote Link naar reactie
0 AvD Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 (aangepast) Zo, los uit de pols, zou ik zeggen: 1) selecteer de groep waarover het gaat 2) sorteer de records in stijgende of dalende volgorde 3) tel het aantal records 4) deel dat getal door twee en zet het resultaat weg in een global 5) ga dan naar die record Dit moet eenvoudig te scripten zijn. 3 december 2002 aangepast door Gast Quote Link naar reactie
0 Stef Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 Kan ook met een calculatie: veld "mediaan_c", calculation, result number, UNSTORED If(Status( CurrentRecordNumber) = Int(Status( CurrentFoundCount)/2);punten;0) >>>zet dit niet op je layout veld "mediaan", summary Total of "mediaan_c" >>>zet dit op je layout HTH, Stef Quote Link naar reactie
0 JeanWM Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 Ik gebruik (eigenlijk is het gebruikte) de volgende script voor het bepalen van de mediaan van het veld ‘Median_data’ binnen een gevonden reeks. Na het uitvoeren van de script is het global field Glob_Median gelijk aan de mediaan van de gevonden reeks (of dat hoop ik) Je hebt wel een aantal velden nodig : Glob_total (Global, Number) Dit bevat het total aantal records van de gevonden reeks, zodat daarvan de ‘middelste(n)’ gevonden kunnen worden. Glob_gotoRec (Global, Number) Dit bepaald de positie (number) van de middelste record. Glob_median1 (Global, Number) Dit bevat de waarde van Median_data voor het eerste middelste record, Indien de gevonden reeks een even aantal records heeft. Glob_Median (Global, Number) Dit veld bevat de median van de gevonden reeks. Voor een reeks met oneven records zal het de logische mediaan geven, van het middelste record dus, bij een even aantal zal het de mathematische mediaan geven van de twee middelste records De script "Calculate Median": Perform Find [Restore] -- Bepaald de te vinden records Sort [Restore, No dialog] -- Sorteer op het veld waarvan je de mediaan wilt (voor mij : Median_data ). Set Field [Glob_total, Status(CurrentFoundCount) ] Set Field [Glob_gotoRec, if (Glob_total = Int (Glob_total / 2) * 2, Glob_total / 2, Int (Glob_total / 2 ) + 1 ) ] -- Bewerking indien er een even of oneven reeks is If [ Glob_total = ( Int (Glob_total / 2) * 2) ] – Controle voor even of oneven. -- if even: Goto Record [Glob_gotoRec] – dat is de eerste van de twee middelste Set Field [Glob_median1, Median_data] Goto Record [Next] – dat is de tweede van de twee middelste Set Field [Glob_Median, (Glob_median1 + Median_data ) / 2 ] Else -- if oneven: Goto Record [Glob_gotoRec] Set Field [Glob_Median, Median_data] End If Ik ben even gaan kijken in een oude toepassing (FM2) en vandaaruit het geheel omgezet (tekst) voor FM3. In de versie FM2 gebruik ik nog (noodgedwongen) copy en paste en replace om bepaalde zaken te realiseren.Het geheel niet getest, maar iemand zal wel kunnen zeggen of het werkt ??? Quote Link naar reactie
0 AvD Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 Stef's calculatie kaapt de prijsbeker weg, denk ik. Maar hoe zit het als je met een oneven aantal records werkt? En bij een even aantal records zou de mediaan het gemiddelde zijn van de middelste twee cijfers. Klopt dat? Quote Link naar reactie
0 Stef Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 En bij een even aantal records zou de mediaan het gemiddelde zijn van de middelste twee cijfers. Klopt dat? da'k 't bij God, Allah noch Boedha weet! Ik zat altijd ONDER de mediaan. Quote Link naar reactie
0 JeanWM Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 The median is the specific member of a set of numbers which divides the set into two equal sets. In other words, half the remaining numbers are less than or equal to the median, while the other half are greater than or equal to the median. Median: The middle value of a set of numbers arranged in order of increasing magnitude. Odd Number of Measurements x = [ 1 2 3 4 5 6 7 ] median = 4 Even Number of Measurements x = [ 1 2 3 4 5 6 7 8 ] median = (4+5)/2= 4.5 The median, unlike the mean, is not affected by extreme data values. The median also divides the data so that it will leave half of all the data items greater than or equal to the median. Dit komt uit een IAEA voorschrift. Quote Link naar reactie
0 AvD Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 Bedankt JeanWM. Dit is precies wat we nodig hadden! Nu alleen nog verklappen waar dat acronym voor staat: International Association... en wat verder nog? Quote Link naar reactie
0 JeanWM Geplaatst: 21 november 2002 Delen Geplaatst: 21 november 2002 Mijn 'vertrouwde omgeving' International Atomic Energy Agency Alles wat met radioactiviteit te maken heeft. Vooral op gebied van transport en verpakkingen. [/b] Quote Link naar reactie
0 Rudy De Vrieze Geplaatst: 25 november 2002 Auteur Delen Geplaatst: 25 november 2002 Jean, je oplossing is uitgetest en werkt behoorlijk, in alle gevallen - bij even en oneven aantal records vanzelfsprekend voer ik vooraf een zoekopdracht uit op niet-lege records vriendelijk bedankt rudy Quote Link naar reactie
0 JeanWM Geplaatst: 25 november 2002 Delen Geplaatst: 25 november 2002 Bedankt voor de info Rudy. Ik had de opstelling in FM2 gewoon 'on the fly' 'vertaald' terwijl ik het bericht intikte. Bepaalde feature in de latere versies bestonden nog niet in FM 2 en eigenlijk had ik weinig tijd om een voorlopig bestandje te maken. Blij voor jou dat het werkt. Quote Link naar reactie
0 JeanWM Geplaatst: 3 december 2002 Delen Geplaatst: 3 december 2002 Voor degene die het zou kunnen gebruiken heb ik een kleine aanpassing gedaan van de ‘Mediaan’ script. Het steunt op 5 global fields en met een calculatie veld kan aangegeven worden per record of dit boven, onder of op het gemiddelde zit. Het ‘Mark’ veld kan aangepast worden volgens de toepassing, het krijgt dan de naam van het veld waarop de mediaan moet bepaald worden. Volgende velden zijn nodig : Mark Number NrFoundRecords.g Global – Number RecordCount.g Global – Number Mark1.g Global – Number Mark2.g Global – Number Mediaan.g Global – Number Position Calculation – text – unstored If(Mediaan = “”,””, Case( Mark > Mediaan, “Hoger”, Mark < Mediaan, “Lager”, “Boenk oep” )) En hier gaan we voor de script : Allow User Abort – Off Set Error Capture – On 1.Find All 2.Sort Sort Order Restore sort order Mark (Ascending) No dialog 3.Set Field NrFoundRecords.g Calculation Status(CurrentFoundCount) 4.Go to Record/Request/Page First 5.Set Field RecordCount.g Calculation 1 6.If Calcualtion Mod(NrFoundRecords, 2) = 1 7.Loop 8.Exit Loop If Calculation RecordCount.g = NrFoundRecords/2 + 0,5 9.Go to Record/Request/Page Next 10.Set Field RecordCount.g Calculation RecordCount.g + 1 11.End Loop 12.Set Field Mediaan Calculation Mark 13.Else 14.If Calculation Mod(NrFoundRecords, 2) = 0 15.Loop 16.Exit Loop if Calculation RecordCount.g = NrFoundRecords/2 17.Go to Record/Request/Page Next 18.Set Field RecordCount.g Calculation RecordCount + 1 19.End Loop 20.Set Field Mark1.g Calculation Mark 21.Go to Record/Request/Page Next 22.Set Field Mark2.g Calculation Mark 23.Set Field Mediaan Calculation Average (Mark1.g, Mark2.g) 24.End If 25.End If 26.Unsort Mijn logica : Stap 1 het vinden van alle records en stap 2 zet het veld NrFoundRecords.g gelijk aan het aantal gevonden records. Stap 3 sorteert volgens Mark en stap 4 vindt het eerste record van deze reeks, terwijl RecordCount.g gelijk wordt gesteld aan 1 in stap 5. Vanaf hier moet de script in twee richtingen kunnen gaan, afhankelijk of er even of oneven records zijn. Stap 6 gebruikt de modulo functie om te bepalen of NrFoundRecords.g oneven is. Als dit zo is, zal stap 7 tot 11 een loop doen die gelijdelijk naar de volgende record zal gaan door RecordCount.g met 1 te verhogen tot de waarde van de middelste record bereikt is. Stap 12 zet Mediaan gelijk aan de waarde van het veld Mark voor het middelste record. De tweede richting wordt gevolgd vanaf de Else stap 13 als het veld NrFoundRecords even is, en dat wordt bevestigd door Mod(NrFoundRecords.g, 2) = 0. Stap 14 to 19 is logisch als je ze vergelijkt met 6 – 11. Stap 20 – 23 bevestigen dat, wanneer RecordCount.g = NrFoundRecords/2 bereikt is in de loop, de eerste van de middelste records gevonden is. Vanaf hier is het eenvoudig, copy Mark, naar het volgende record gaan en ook copy Mark, het gemiddelde van deze twee geeft de mediaan. De script eindigt met Unsort om de records terug in hun originele volgorde te zetten (indien nodig). Het geheel is getest tot en met FM 5.0. HTH Quote Link naar reactie
0 AvD Geplaatst: 3 december 2002 Delen Geplaatst: 3 december 2002 Een ding klopt niet, volgens mij: Boenk oep moet - dat denk ik toch - Boenk droep zijn ("Ratseroep" schijnt ook te werken, maar dat heb ik niet kunnen testen). Voor de rest werkt het prima. Blij dat we u hebben! Quote Link naar reactie
0 Stef Geplaatst: 3 december 2002 Delen Geplaatst: 3 december 2002 Kan volgens mij véél simpeler, korter en met minder velden (ééntje extra): -veld aanmaken "mediaan_c" (number) -script aanmaken "set mediaan": Sort [ Sort Order: punten (Ascending) ] [ Restore sort order, No dialog ] Replace Contents [ mediaan_c, Replace data:Calculation: , If(Mod( Status( CurrentFoundCount); 2 )=0;If(Status( CurrentRecordNumber) = Int(Status( CurrentFoundCount)/2) or Status( CurrentRecordNumber) = Int(Status( CurrentFoundCount)/2)+1;punten/2;0);If(Status( CurrentRecordNumber) = Int(Status( CurrentFoundCount)/2)+1;punten;0)) ] [ No dialog ] -veld aanmaken: "mediaan", summary, total of "mediaan_c". HTH, Stef Quote Link naar reactie
0 JeanWM Geplaatst: 4 december 2002 Delen Geplaatst: 4 december 2002 Gelijk heb je, Stef. Dat bewijst dat er met Filemaker niet van 'de' oplossing kan gesproken worden, maar veeleer van 'een' oplossing. Quote Link naar reactie
0 jw Geplaatst: 4 december 2002 Delen Geplaatst: 4 december 2002 zo te zien doet Stef meer met formules en JeanWM het kleine stapjes. Kan je nu zeggen dat de formule-vorm sneller resultaat geeft bij berekeningen? Quote Link naar reactie
Vraag
Rudy De Vrieze
voor een statistiek heb ik een berekening nodig van het mediaangetal. Bij mijn weten voorziet FileMaker niet in deze functie.
Heeft er iemand een bruikbaar script?
of een suggestie voor ondergetekende beginner Bean![:?](//www.clarify.net/applications/core/interface/js/spacer.png)
Link naar reactie
15 antwoorden op deze vraag
Aanbevolen berichten
Doe mee aan dit gesprek
Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.