Thursday, 2 November 2017

Sas Bevegelig Gjennomsnitt Matrise


Jeg har følgende datasett: CustID NGIF RAMN RFA1 2001 6 52 1 2002 1 23 1 2003 8 99 1 2004 20 100 4 2005 11 114 3 2006 9 138 1 2007 7 105 3 2008 15 190 2 2009 27 297 1 2010 22 207 1 2011 19 171 2 Jeg vil beregne for hvert RFA1 nivå (som er 1-4), gjennomsnittet (Total RAMN for et RFA1 nivå totalt antall av det RFA1 nivået) ved hjelp av arrayer. Uten arrays, Hvis jeg deler og gjør, får jeg resultat for individuelt nivå. Følgende er koden: Mitt problem er Hvordan skriver jeg denne koden for alle de fire nivåene av RFA1 ved hjelp av Arrays. spurte Sep 23 14 kl 03:49 Takk for svaret ditt Joe. Jeg har prøvd dette med PROC MEANS og ja de gjør det som kreves. Men jeg lærer SAS og friskere på det, og vil også lære seg arrays. Derfor prøver jeg å løse det ved hjelp av Arrays. Jeg tror med 39amp39 jeg initialiserer tre variabler i en setning basert på om tilstanden. Vennligst unnskyld meg for min uvitenhet og la meg få vite hvor jeg går galt. ndash Charlotte 23 september 14 på 14: 51Se MACMA1 i SASQC Eksempelbiblioteket Det forrige eksempelet illustrerer hvordan du kan lage flytende gjennomsnittlige diagrammer ved hjelp av rå data (prosessmålinger). Imidlertid er dataene gitt i mange søknader som undergruppeoppsummeringsstatistikk. Dette eksemplet illustrerer hvordan du kan bruke MACHART-setningen med data av denne typen. Følgende datasett (CLIPSUM) gir dataene fra foregående eksempel i oppsummert form: En liste over CLIPSUM er vist i Figur 21.3. Det er nøyaktig en observasjon for hver undergruppe (merk at undergruppene fortsatt er indeksert av DAY). Variabelen GAPX inneholder undergruppemetoden, variabelen GAPS inneholder standardgruppefeilene for undergruppen, og variabelen GAPN inneholder undergruppeprøvestørrelsene (disse er alle fem). Datasettet CLIPSUM Figur 21.3: Sammendragsdisplayet CLIPSUM Du kan lese dette datasettet ved å spesifisere det som et HISTORY-datasett i PROC MACONTROL-setningen, som følger: Det resulterende glidende gjennomsnittskartet er vist i Figur 21.4. Siden LINEPRINTER-alternativet er spesifisert i PROC MACONTROL-setningen, produseres linjeprinterutgang. Asterisken () angitt i enkelt anførselstegn etter undergruppevariabelen indikerer tegnet som brukes til å plotte poeng. Denne karakteren må følge et likestilling. Merk at GAP ikke er navnet på en SAS-variabel i datasettet, men er i stedet det vanlige prefikset for navnene på de tre SAS-variablene GAPX, GAPS og GAPN. Suksessen tegnene X. S. og N angir middel. standardavvik. og prøve størrelse. henholdsvis. Dermed kan du angi tre undergrupper oppsummeringsvariabler i et HISTORY datasett med et enkelt navn (GAP), som refereres til som prosessen. Variablene GAPX, GAPS og GAPN er alle nødvendige. Navnet DAY spesifisert etter stjernen er navnet på undergruppevariabelen. Moving Average Chart for Gap Measurements Figur 21.4: Ensartet Vektet Flytende Gjennomsnittlig Diagram fra Sammendrag Data Generelt må et HISTORY-inngangsdata sett som brukes i MACHART-setningen inneholde følgende variabler: Undergruppe variabel undergruppe Gjennomsnittlig variabel undergruppe Standardavvik variabel Undergruppe Eksempelstørrelse variabel Videre , navnene på undergruppemessige, standardavvik og variablene for prøvestørrelse skal begynne med prosessnavnet som er angitt i MACHART-setningen og avsluttes med spesialtypekstegnene X. S. og N. henholdsvis. Hvis navnene ikke følger denne konvensjonen, kan du bruke RENAME-alternativet i PROC MACONTROL-setningen til å omdøpe variablene for varigheten av MACONTROL-prosedyrestrinnet. Sammendrag avhenger tolkningen av prosessen av inndatasettet. Hvis rådata blir lest ved hjelp av DATA-alternativet (som i forrige eksempel), er prosessen navnet på SAS-variabelen som inneholder prosessmålingene. Hvis oppsummeringsdata leses ved hjelp av HISTORY-alternativet (som i dette eksemplet), er prosessen det vanlige prefikset for navnene på variablene som inneholder oppsummeringsstatistikken. For mer informasjon, se 34HISTORY Data Set34. 13 13Vridende gjennomsnitt med datoperiode glidende gjennomsnitt med datoperiode glidende gjennomsnitt med datoperiode Jeg er ny hos SAS, og jeg har noen problemer med å beregne glidende gjennomsnitt basert på datoer og grupperinger i datasettet. I utgangspunktet prøver jeg å beregne glidende gjennomsnitt for hver observasjon basert på de siste 90 dagene. Hver observasjon har en dato. Jeg må også gruppere dem slik at glidende gjennomsnitt bare er basert på gruppen. Med andre ord, hvis jeg var gruppert av frukt, ville epler ha sitt eneste bevegelige gjennomsnitt og orages, etc. Jeg vet at jeg må sortere datasettet først, og deretter bruke en holdningserklæring. Jeg tenkte faktisk på å lage en makro også. Jeg startet dette, men kan ikke synes å få noen del av det til å fungere. Kan noen hjelpe meg Jeg vet hvordan å gjøre sorteringen, men jeg vet også hvordan jeg får gjennomsnittet, men det er ikke gruppering riktig. Det gir meg bare verdien av observasjonen. Jeg prøvde da å gjøre det med SQL, men det virker heller ikke. Dette er hva jeg kom opp med. proc sql lage tabell data. movingavg som velg a., mean (basis) som flytting fra xx hvor dateratgruppe etter produkt RE: glidende gjennomsnitt med datoperiode dette virker heller ikke. data nytt sett gammelt ved id behold grunnlag dersom date90 da avg gjennomsnittlig (basis) kjøre RE: glidende gjennomsnitt med datoperiode Her er et eksempel på datasettet mitt. produkt dato basis eple may20 4 oransje mars2 3 apple april 3 banan jan31 33 apple feb13 88 apple dec2 12 hva jeg trenger er et løpende glidende gjennomsnitt av de siste 90 dagene av produktet basert på basisbeløpet. Beklager for flere innlegg, men etter at jeg har lest det tidligere innlegget mitt, virket det forvirrende om hva jeg prøver å gjøre. takk RE: glidende gjennomsnitt med datoperiode klaz2002 (programmerer) 25 sep 07 16:00 Jeg må begynne med å si takk for dette spørsmålet. Fordi det ga meg ingen hvile til jeg kunne løse det. La meg si hva jeg tror er kravet ditt bare slik at du og jeg er på samme side. Req 1) Du vil ha et bevegelige gjennomsnitt av de siste 90 dagene av data etter produktnavn. Betydning, at for et enkelt produkt (for eksempel eple) er du bare interessert i basisverdiene for det produktet som går tilbake 90 dager. 2) Jeg antok at du har en (1) post per produkt per dag. Det betyr at du aldri har mer enn en basisverdi per produkt per dag. (koden håndterer ikke mer akkurat nå) For å løse historikkproblemet (verdiene går tilbake 90 dager) brukte jeg lagx () og satt dager 1-90 i variabler og deretter lagt dem til en ARRAY. Siden variabelen må inkluderes i gruppen, opprettet jeg en liten makro som genererte kodelinjene som jeg trengte. Makro som skaper 270 variabler for 90 dager i historien makro SetVars gjør i1 til 90 prodampi lagampi (produkt) dateampi lagampi (dato) basisampi lagampi (basis) sluttendring FIRST SORT BY PRODUCT AND DATE proc sorter data yourdata ut datasorted etter produktdatoen kjøre data siste sett datasorted etter produkt dato lengde prod1-prod90 7 date1-date90 basis1-basis90 mysum 8 array nåværende mysum array prod prod1-prod90 array dt date1-date90 array bs basis1-basis90 SetVars SETT DATOEN 90 DAGER AGO TO CHECK DateMinus90 date-90 bctr 1 mysum 0 LØP OVER ALLE MULIGE DAGER Gjør I1 TIL 90 SKRIV UTTRYKKELIG FOR FIRST CASE I PRODUKTGRUPPE DER ER INGEN LAG YET OM FØRSTE PRODUKT OG BEGRENSNING AV BEGRENSNING. KONTROLLER FOR DET SAMME PRODUKTNAVN OG INNEN 90 DAGER ANNEN OM TJENESTER (OPPBEVARING )) trim (oppgave (produkt)) og dt dateminus90 så gjør det dersom du legger til SUM VAR mysum summen (mysum, basis, bs) HOLD EN TEL AV HVOR MANGE DATAPOINTER FUNKSJONER 1 End Enden IF INGEN FUNKSJONER DEN NUVENDE GRUNNSVAREN BURDE BLI BRUKT hvis mysum 0 then myavg basis annet minavg mysumbctr kjøre proc print dataFINAL var produkt dato dateminus90 basis myavg format date dateminus90 mmddyy10. løp Jeg håper at dette hjelper deg. Du bør virkelig se dette over som jeg gjorde dette virkelig uten omfattende kontroll. Det kan være mange begrensninger på denne koden, så vær forsiktig. Eksempelkoden på fanen Fullkode illustrerer hvordan du beregner det bevegelige gjennomsnittet av en variabel gjennom et helt datasett, over de siste N-observasjonene i et datasett eller over det siste N observasjoner innenfor en BY-gruppe. Disse prøvefiler og kodeeksempler er levert av SAS Institute Inc., som er uten garanti av noe slag, enten uttrykk eller underforstått, inkludert, men ikke begrenset til, de underforståtte garantiene for salgbarhet og egnethet for et bestemt formål. Mottakerne erkjenner og aksepterer at SAS Institute ikke skal holdes ansvarlig for eventuelle skader som måtte oppstå ved bruk av dette materialet. I tillegg vil SAS Institute ikke gi støtte til materialene som er inkludert heri. Disse prøvefiler og kodeeksempler er levert av SAS Institute Inc., som er uten garanti av noe slag, enten uttrykk eller underforstått, inkludert, men ikke begrenset til, de underforståtte garantiene for salgbarhet og egnethet for et bestemt formål. Mottakerne erkjenner og aksepterer at SAS Institute ikke skal holdes ansvarlig for eventuelle skader som måtte oppstå ved bruk av dette materialet. I tillegg vil SAS Institute ikke gi støtte til materialene som er inkludert heri. Beregn det bevegelige gjennomsnittet av en variabel gjennom et helt datasett, over de siste N observasjonene i et datasett, eller over de siste N observasjonene i en BY-gruppe.

No comments:

Post a Comment