
لا تزال المخططات الرادارية غير شائعة مثل أخواتها وأخواتها الأخريات. فهي تسمح بإظهار الاختلافات بين المجموعات للعديد من المتغيرات في وقت واحد. وهي تعمل بشكل جيد إذا كان لديك حد أقصى لهذه المتغيرات. وأيضاً، إذا لم يكن لديك الكثير من المجموعات للمقارنة، من الناحية المثالية 2-3. وإذا لم تكن مهتماً بالتوزيعات نفسها.
ومع ذلك، فهي جذابة بصريًا وقد تكون جزءًا رائعًا من تطبيق Shiny الديناميكي اللامع.
فيما يلي رمز بسيط لمخطط راداري لبيانات أعراض مرض باركنسون. يتم تسجيل كل عرض من 0-100. بما أن البيانات طولية، تسمح الدالة برسمها في نقطة زمنية معينة. كما يتم تمكين الترتيب حسب الشدة.
تعمل الدالة مع المجموعة الثنائية.
Plot.Bin.Radar<-function(نقطة زمنية،مجموعة، order_by_severity = FALSE){
#P5Treading الأعراض data#
data.symptoms<-data.frame(ID=m.data$participicipant_id,بطيء=m.data$slow,إمساك=m.data$constipation,walk=m.data$walk,freezing=m.data$freezing,falls=m.data$falls,الارتفاع=m.data$rising,ارتداء الملابس=m.data$dressing,التحفيز=m.data$motivation,الكتابة اليدوية=m.data$handwriting,
الإكتئاب=m.data$depression,مع السحب=m.data$withdrawn,
قلق=m.data$anxiety,تعب=m.data$fatigue,
النعاس=m.data$sleepy,خلل الحركة=m.data$dyskinesia,
الرعاش=m.data$remor,التوازن=m.data$balance,
دوار=m.data$dizzy,بصري=m.data$visual,أرق=m.data$insomnia
rbd=m.data$rbd,restlesslegs=m.data$restlesslegs,
musclepain=m.data$musclepain,كلام=m.data$speech,
سيلان اللعاب=m.data$drool,stoop=m.data$stoop
الذاكرة=m.data$memory,الفهم=m.data$comprehension,الشم=m.data$smell
جنسي=m.data$sexual,بولي=m.data$urinary,
الهلوسة=m.data$hallucinations,الغثيان=m.data$nausea,الوقت=m.data$imeCont)
#حيث متغير المجموعة في البيانات#
حيث.group<-أي (أسماء(m.data)==مجموعة)
data.symptoms.12<- data.symptoms.12<- data.symptoms[(data.symptoms$ime==timepoint)&(m.data[,where.group]===1)،]
all.symptoms.0 <- data.frame(sapply(data.symptoms.0, function(x) as.numeric(as.character(x))))
all.symptoms.12 <- data.frame(sapply(data.symptoms.12, function(x) as.numeric(as.character(x))))
av.symp.0<- colMeans(all.symptoms.0, na.rm=TRUE)
av.symp.12<- colMeans(all.symptoms.12, na.rm=TRUE)
البيانات <- as.data.frame(rbind(av.symp.0[2:34],av.symp.12[2:34]))
1TP5الترتيب حسب الشدة#
إذا (ترتيب_الترتيب_حسب_الشدة) {
# احسب متوسط الشدة عبر كلا المجموعتين
متوسط_الحدة <- colMeans(البيانات، na.rm = TRUE)
الأعراض_المرتبة <- أسماء (فرز (متوسط_الشدة، تنازلي = TRUE))
البيانات <- البيانات [، الأعراض_المطلوبة]
}
get.labels<- أسماء.data$P4TField.Label[names.data$Variable.Field.Name==المجموعة]
rownames(البيانات) <- c(paste0(" لا "، نقطة زمنية،"م."),paste0(" نعم "،نقطة زمنية،"م."))
# لاستخدام حزمة fmsb، يجب أن أضيف سطرين إلى إطار البيانات: الحد الأقصى والحد الأدنى لكل متغير لإظهاره على الرسم البياني!
البيانات <- rbind(rep(100,33)، rep(0,33)، البيانات)
# متجه اللون (الحدود والتعبئة)#
color_border=ج( rgb(0.2,0.5,0.5,0.5,0.9)، rgb(0.8,0.2,0.5,0.9)، rgb(0.7,0.5,0.1,0.9,0.9),rgb(0.1,0.1,0.1,0.9,0.9))
ألوان_في=ج( rgb(0.2,0.5,0.5,0.5,0.4)، rgb(0.8,0.2,0.5,0.4),rgb(0.7,0.5,0.1,0.4),rgb(0.1,0.1,0.1,0.9,0.4))
مخطط # بخيارات افتراضية:
رادارتش( البيانات، نوع المحور=1 ,
#custom مضلع مخصص
pcol=colors_border، pfcol=colors_in، plwd=4، plty=1,
#custom الشبكة
cglcol="رمادي"، cglty=1، axislabcol="رمادي"، caxislabels=seq(0,20,5)، cglwd=0.8، vlcex=0.8، title=get.labels)
وسيلة الإيضاح(س=0.8، ص=1.3، وسيلة الإيضاح = rownames(data[-c(1,2)،])، bty = "n"، pch=20 ,
اللون=colors_border، text.col = "أسود"، cex=1، pt.cex=2)
إذا (order_by_severity) {
mtext("الأعراض مرتبة حسب متوسط الشدة عبر كل المجموعات",
الجانب = 1، السطر = 4، cex = 0.9، اللون = "grey40")
}
}
Plot.Bin.Radar(0,"الجنس",order_by_severity = TRUE)

كنتيجة لاستدعاء دالة Plot.Bin.Radar(0,"الجنس",order_by_severity = TRUE) لدينا الرسم البياني كما هو موضح أعلاه. بالنسبة للجنس، لمدة 0 شهر (خط الأساس). تخيل الآن تطبيق Shiny مع الوقت كمنزلق:
مكتبة(shinydashboard)
ui <- لوحة القيادة(
dashboardHeader(العنوان = "لوحة معلومات باركنسون"),
dashboardSidebar(),
dashboardBody(
# يجب وضع الصناديق في صف (أو عمود)
صف مائع(
مربع(العرض = 6،مخرجات الرسم("الرسم1"، الارتفاع = 450)),
مربع(
العنوان = "خط الأساس مقابل نقطة زمنية أخرى",
sliderInput("شريط التمرير"، "اختر نقطة زمنية:"، 0, 24, 6)
)
)
)
)
الخادم <- دالة (مدخلات، مخرجات) {
مكتبة(fmsb)
بياناتك <- read.csv("mydata.csv")
1TP5تقوم ببعض إدارة البيانات هنا#
المصدر("park_functions.R")
إخراج$plot1 <- renderPlot({
Plot.Radar(input$slider)
})
}
تطبيق لامع(ui، الخادم)

ثم ارفع التطبيق على خادم لامع وفيولا! إنه يوفر لك ما يقرب من 1000 قطعة أرض وهو ممتع حقًا للاستكشاف!
حظاً موفقاً!
