باستخدام R للحصول على تقلبات الذروة avg.نسبة حركة المرور على الإنترنت من بيانات

StackOverflow https://stackoverflow.com/questions/5059869

سؤال

لدي شبكة حركة مرور البيانات التالية عن كل ساعة من عشرة أيام على النحو التالي في ص dataset.

   Day   Hour         Volume          Category
    0    00            100            P2P
    0    00            50             email
    0    00            200            gaming
    0    00            200            video
    0    00            150            web
    0    00            120            P2P
    0    00            180            web
    0    00            80             email
    ....
    0    01            150            P2P
    0    01            200            P2P
    0    01             50            Web
    ...
    ...
    10   23            100            web
    10   23            200            email
    10   23            300            gaming
    10   23            300            gaming

كما رأينا هناك تكرار الفئة في غضون ساعة واحدة أيضا.أحتاج إلى حساب تقلبات في ساعة الذروة إلى متوسط ساعة نسب هذه الفئات الطلب.

تقلب:الانحراف المعياري للساعة مجلدات مقسمة حسب كل ساعة في المتوسط.

ساعة الذروة avg.ساعة نسبة:نسبة حجم الحد الأقصى من ساعة إلى المجلد.متوسط ساعة لهذا التطبيق.

كيف يمكنني تجميع وحساب هذه الإحصائيات اثنين لكل فئة ؟ أنا جديدة على R و لا يملكون الكثير من المعرفة في كيفية تجميع و الحصول على المتوسطات كما ذكر.

إذن النتيجة النهائية سوف ننظر بشيء من هذا القبيل حيث الأولى حجم كل فئة مجمعة على واحد 24 ساعة من خلال تلخيص المجلد ثم احتساب الإحصائيات اثنين

Category    Volatility      Peak to Avg. Ratio
Web            0.55            1.5
P2P            0.30            2.1
email          0.6             1.7
gaming         0.4             2.9

تحرير:plyr حصلت لي قدر هذا.

stats = ddply(
    .data = my_data
    , .variables = .( Hour , Category)
    , .fun = function(x){
        to_return = data.frame(
            volatility = sd((x$Volume)/mean(x$Volume))
            , pa_ratio = max(x$Volume)/mean(x$Volume)
        )
        return( to_return )
    }
)

ولكن هذا ليس ما كنت آمل.أريد الإحصاءات في الفئة حيث كل ساعة من أيام يتم تجميعها لأول مرة في 24 ساعة عن طريق جمع كميات ثم تقلب السلطة الفلسطينية نسبة محسوبة.أي اقتراحات للتحسين ؟

هل كانت مفيدة؟

المحلول

كنت بحاجة إلى أن تفعل ذلك في مرحلتين (باستخدام plyr حزمة):أولا كما أشرت يمكن أن يكون هناك اليوم عدة ساعات المجموعات لنفس الفئة ، لذلك علينا أولا الكلي لكل فئة ، المجاميع داخل كل ساعة ، بغض النظر عن اليوم:

df1 <- ddply( df, .(Hour, Category), summarise, Volume = sum(Volume))

ثم يمكنك الحصول على احصائيات الخاص بك:

> ddply(df1, .(Category), summarise,
+            Volatility = sd(Volume)/mean(Volume),
+            PeakToAvg = max(Volume)/mean(Volume) )

  Category Volatility PeakToAvg
1      P2P  0.3225399  1.228070
2      Web         NA  1.000000
3    email  0.2999847  1.212121
4   gaming  0.7071068  1.500000
5    video         NA  1.000000
6      web  0.7564398  1.534884
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top