Monday 5 February 2018

تحريك متوسط الحساب في ساس


لقد قمت بتضمين لقطة شاشة للمساعدة في توضيح مشكلتي: أنا أحاول حساب نوع من المتوسط ​​المتحرك والانحراف المعياري. الشيء هو أنني أريد لحساب معاملات الاختلاف (ستديفافغ) للقيمة الفعلية. عادة يتم ذلك عن طريق حساب ستديف والمتوسط ​​للسنوات ال 5 الماضية. ولكن في بعض الأحيان سوف يكون هناك ملاحظات في قاعدة البيانات الخاصة بي التي ليس لدي معلومات من السنوات ال 5 الماضية (ربما فقط 3، 2 الخ). ثاتس لماذا أريد رمز من شأنها أن حساب متوسط ​​و ستديف حتى لو لم يكن هناك أي معلومات لمدة 5 سنوات كاملة. أيضا، كما ترون في الملاحظات، وأحيانا لدي معلومات أكثر من أكثر من 5 سنوات، عندما يكون هذا هو الحال أنا بحاجة إلى نوع من المتوسط ​​المتحرك الذي يسمح لي لحساب متوسط ​​و ستديف على مدى 5 سنوات الماضية. حتى إذا كانت الشركة لديها معلومات لمدة 7 سنوات أنا بحاجة إلى نوع من التعليمات البرمجية التي ستحسب أفغ و ستديف ل، دعونا نقول، 1997 (1991-1996)، 1998 (1992-1997) و 1999 (1993-1998). كما أنا غير مألوفة جدا مع ساس الأوامر يجب أن ننظر (تقريبا جدا) مثل: أو شيء من هذا القبيل، ليس لدي أي فكرة، إم ستعمل محاولة و معرفة ذلك ولكن قيمتها نشره إذا لم تجد ذلك myself. moving متوسط مع متوسط ​​متوسط ​​المدى المتحرك مع متوسط ​​المدى المتوسط ​​المتحرك مع النطاق الزمني إم جديد إلى ساس، وأواجه بعض المشكلات في حساب المتوسط ​​المتحرك استنادا إلى التواريخ والتجمعات ضمن مجموعة البيانات. في الأساس، أحاول حساب المتوسط ​​المتحرك لكل ملاحظة استنادا إلى آخر 90 يوما. كل ملاحظة لها تاريخ. وأحتاج أيضا إلى تجميعها بحيث لا يستند المتوسط ​​المتحرك إلا إلى المجموعة. وبعبارة أخرى، إذا كنت تجميعها عن طريق الفواكه، والتفاح سيكون لها المتوسط ​​المتحرك الوحيد والأعراف، وما إلى ذلك وأنا أعلم أنني سوف تحتاج إلى فرز مجموعة البيانات أولا، ثم استخدام بيان الاحتفاظ. كنت أفكر بالفعل في القيام ماكرو أيضا. بدأت هذا، ولكن لا يبدو يبدو للحصول على أي جزء منه للعمل. يمكن للشخص مساعدتي أعرف كيفية القيام الفرز، ولكن أنا أيضا أعرف كيفية الحصول على المتوسط، ولكن ليس تجميع بشكل صحيح. انها تعطي لي فقط قيمة الملاحظة. ثم حاولت أن تفعل ذلك مع سكل، لكنها لا تعمل إما. هذا هو ما خطرت لي. بروك سكل إنشاء الجدول data. movingavg كما حدد.، يعني (أساس) كما تتحرك من شكس حيث مجموعة مؤرخة حسب المنتج ري: المتوسط ​​المتحرك مع نطاق التاريخ هذا لا يعمل إما. داتا نيو سيت أولد بي إد ريتاس باسد إف date90 ثم أفغ مين (باسيس) رن ري: المتوسط ​​المتحرك مع النطاق الزمني هنا مثال على مجموعة البيانات الخاصة بي. تاريخ المنتج أساس التفاح may20 4 البرتقال march2 3 التفاح أبريل 3 الموز jan31 33 التفاح feb13 88 التفاح dec2 12 ما أحتاج هو تشغيل المتوسط ​​المتحرك من 90 يوما الماضية من المنتج على أساس مبلغ الأساس. آسف على وظيفة متعددة، ولكن بعد إعادة قراءة مشاركتي السابقة، بدا مربكا لما أحاول القيام به. شكرا ري: المتوسط ​​المتحرك مع نطاق التاريخ klaz2002 (مبرمج) 25 سيب 07 16:00 يجب أن أبدأ بالقول شكرا لك على هذا السؤال. لأنه أعطاني أي راحة حتى أتمكن من حلها. اسمحوا لي أن أذكر ما أعتقد هو الشرط الخاص بك فقط بحيث أنت وأنا على نفس الصفحة. ريق 1) تريد أن يكون لديك متوسط ​​متحرك لل 90 يوما الأخيرة من البيانات حسب اسم المنتج. وهذا يعني أن منتج واحد (مثل التفاح) كنت مهتما فقط في أساس قيم هذا المنتج يعود 90 يوما. 2) افترض أن لديك سجل واحد (1) لكل منتج في اليوم. وهذا يعني أنك لا تملك أكثر من قيمة أساس واحد لكل منتج في اليوم الواحد. (رمز لا يتعامل أكثر الآن) لحل قضية التاريخ (القيم تعود 90 يوما) اعتدت لاغس () ووضع أيام 1-90 في المتغيرات ومن ثم إضافتها إلى أرى. وبما أن المتغير يجب أن تدرج في المصفوفة أنا خلقت ماكرو صغير أنتج خطوط التعليمات البرمجية التي كنت بحاجة إليها. الماكرو الذي يخلق 270 متغيرات لمدة 90 يوما من التاريخ سيتفارس الكلي لا i1 إلى 90 منتج لاغامبي (تاريخ) أساسيات لاغامبي (أساس) نهاية ميند أول ترتيب حسب المنتج و ديت بريك فرز البيانات يورداتا خارج داتاسورتيد بواسطة تاريخ المنتج تشغيل البيانات مجموعة النهائية داتاسورتد قبل تاريخ المنتج طول prod1-prod90 7 date1-date90 أساس 1-أساس 90 ميسوم 8 مجموعة الحالية ميسوم مجموعة برود prod1-prod90 مجموعة دت date1-date90 صفيف بس أساس1-أساس 90 سيتفارس تعيين التاريخ 90 أيام أغو للتحقق التاريخ تاريخ 90-90 بكتر 1 ميسوم 0 لوب خلال كل الأيام الممكنة I1 إلى 90 استثنائيا للاستثناء من الحالة الأولى في مجموعة المنتجات كما لا يوجد أي وقت مضى إذا كان أول منتج. ثم كونتينغافغ أساس التحقق من اسم المنتج نفسه وفي غضون 90 يوما آخر إذا تقليم (أوبس (برود ) تريم (أوبسيس (برودوكت)) و دت dateminus90 ثم إذا وجدت ثم إضافة إلى سوم فار ميسوم سوم (ميسوم، باس، بس) كيب كونت كم عدد داتابوانتس وجدت بكتر 1 نهاية نهاية إف لا شيء وجدت بعد القيمة الحالية القيمة يجب استخدامها إذا ميسوم 0 ثم أساس ميافغ آخر ميافغ ميسومبتر المدى بروك طباعة داتفينال فار تاريخ المنتج dateminus90 أساس ميافغ تنسيق التاريخ dateminus90 mmddyy10. تشغيل آمل أن هذا يساعدك. كنت حقا يجب أن ننظر هذا أكثر كما فعلت هذا حقا دون فحص واسعة النطاق. قد يكون هناك العديد من القيود على هذا الرمز حتى حذار. أنا مبتدئ ساس و إم غريبة إذا المهمة التالية يمكن القيام به أكثر بساطة كما هو حاليا في رأسي. لدي البيانات الوصفية (المبسطة) التالية في جدول اسمه وسيرداتموني: المستخدم - التاريخ - المال مع مختلف المستخدمين والتواريخ لكل يوم تقويم (على مدى السنوات الأربع الماضية). يتم ترتيب البيانات من قبل المستخدم أسك وتاريخ أسك، تبدو البيانات عينة مثل هذا: أريد الآن لحساب المتوسط ​​المتحرك لمدة خمسة أيام للمال. بدأت مع أباتش شعبية جدا مع الدالة (مثل): مثل كما ترون، تحدث المشكلة مع هذا الأسلوب إذا كان هناك إذا كانت الخطوة البيانات تشغيل مستخدم جديد. سوف أرون الحصول على بعض القيم المتخلفة من آنا التي بالطبع لا ينبغي أن يحدث. الآن سؤالي: أنا متأكد من أنك يمكن التعامل مع مفتاح المستخدم بإضافة بعض الحقول الإضافية مثل لاجدوسر وإعادة تعيين N، سوم ومتوسط ​​المتغيرات إذا لاحظت مثل هذا التبديل ولكن: هل يمكن أن يتم ذلك بطريقة أسهل ربما باستخدام حسب البند بأي شكل من الأشكال شكرا لأفكارك ومساعدة أعتقد أن أسهل طريقة لاستخدام بروك توسيع: وكما ذكر في تعليق جونز، من المهم أن نتذكر حول القيم المفقودة (وبداية ونهاية الملاحظات كذلك). إيف وأضاف الخيار سيتمس إلى التعليمات البرمجية، كما جعلت من الواضح أنك تريد زيروفي القيم المفقودة، لا تجاهلها (السلوك موفاف الافتراضي). وإذا كنت ترغب في استبعاد أول 4 ملاحظات لكل مستخدم (نظرا لأنها لا تملك ما يكفي من التاريخ ما قبل التاريخ لحساب المتوسط ​​المتحرك 5)، يمكنك استخدام الخيار تريمليفت 4 داخل ترانسفورموت (). أجابيد ديك 3 13 في 15:29

No comments:

Post a Comment