(दुर्भाग्य से, मैं बुनियादी शब्दावली मेरे सवाल तैयार करने के लिए याद आ रही है। तो, कृपया मुझे सही करें जहां अधिक सटीक शब्दों उपयोगी होते हैं।),डेटा बिंदुओं के अनुपात की गणना कैसे करें, यानी, कुछ मानदंडों के आधार पर उन्हें संयोजित करें?
मैं आर का उपयोग आभासी मशीनों की बेंचमार्क परिणामों के लिए बहुत ही बुनियादी सांख्यिकीय विश्लेषण करने के लिए और मैं अक्सर कुछ मानदंडों के आधार पर मेरे डेटा को सामान्य बनाना चाहते हैं।
normalized_data <- ddply(bench, ~ Benchmark + Configuration + Approach,
transform,
Ratio = Time/Time[Approach == "appr2"])
तो, क्या मैं वास्तव में चाहते हैं इसी माप के जोड़ों के बीच गति-अप की गणना करने के लिए है:
वर्तमान में मेरी समस्या यह है कि मैं काम करने के लिए निम्नलिखित की तरह कुछ चाहते हैं।
bench
कॉलम समय, बेंचमार्क, कॉन्फ़िगरेशन और दृष्टिकोण के साथ एक डेटा फ्रेम है और इसमें बेंचमार्क, कॉन्फ़िगरेशन और दृष्टिकोण के सभी संभावित संयोजनों के लिए 100 माप शामिल हैं। अब मुझे बिल्कुल दो दृष्टिकोण मिल गए हैं और "अनुमोदन"/"अनुमोदन 1" की गति चाहते हैं। इस प्रकार, केवल एक विशिष्ट बेंचमार्क और एक विशिष्ट कॉन्फ़िगरेशन को देखते हुए, मेरे पास मेरे डेटा फ्रेम में "अनुमोदन 1" और "अनुमोदन 2" के 100 माप हैं।
Error in data.frame(list(Time = c(405.73, 342.616, 404.484, 328.742, 403.384, :
arguments imply differing number of rows: 100, 0
आदर्श रूप में, मेरी क्वेरी का परिणाम तीन कॉलम SpeedUp, बेंचमार्क, विन्यास के साथ एक नया डेटा फ्रेम में परिणाम होगा: हालांकि, आर मुझे निम्न त्रुटि दे क्वेरी से उत्पन्न कर देता है। उस पर आधारित मैं फिर, आत्मविश्वास अंतराल और अन्य की गणना करने में सक्षम हो जाएगा।
लेकिन फिलहाल, मूल समस्या यह है कि इस तरह के सामान्यीकरण को कैसे व्यक्त किया जाए। एक और डेटा सेट के लिए मैं इस Time.norm = Time/Time[NumCores == min(NumCores)]
जैसे सामान्यीकृत मान की गणना करने में सक्षम था, लेकिन ऐसा लगता है कि यह मौका से काम करता है, कम से कम मुझे अंतर समझ में नहीं आता है।
किसी भी संकेत की सराहना करते हैं। (विशेष रूप से ऐसी समस्याओं के समाधान के लिए सही शब्दावली।)
संपादित करें: चेस के संकेत के लिए धन्यवाद, यहां एक न्यूनतम डेटा सेट है, जो मुझे जो मिला है उसके लिए संरचनात्मक रूप से समान होना चाहिए, और यह उसी व्यवहार को दर्शाता है ऊपर की क्वेरी।
bench <- structure(list(Time = c(399.04, 388.069, 401.072, 361.646),
Benchmark = structure(c(1L, 1L, 1L, 1L), .Label = c("Fibonacci"), class = "factor"),
Configuration = structure(c(1L, 1L, 1L, 1L), .Label = c("native"), class = "factor"),
Approach = structure(c(1L, 1L, 2L, 2L), .Label = c("appr1", "appr2"), class = "factor")),
.Names = c("Time", "Benchmark", "Configuration", "Approach"),
row.names = c(NA, 4L), class = "data.frame")
हाय smarr - एक अच्छा तकनीकी प्रश्न तैयार करने के सुझावों के लिए इस प्रश्न पर एक नज़र डालें: http://stackoverflow.com/questions/5963269/how-to-make-a- महान-R-प्रतिलिपि प्रस्तुत करने योग्य-उदाहरण। विशेष रूप से, 'dput (yourData) ' – Chase
जोड़ने पर विचार करें! मैंने ऊपर एक डेटा सेट जोड़ा। – smarr
Arg, शुरुआती गलती! – smarr