العثور على ما تحتاجه في R:بحث مركّز ضمن R وجميع حزم CRAN (3500+).

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

  •  06-07-2019
  •  | 
  •  

سؤال

في كثير من الأحيان، يوجد في لغة R عشرات الوظائف المنتشرة عبر العديد من الحزم - جميعها لها نفس الغرض ولكنها تختلف بالطبع في الدقة والأداء والتوثيق والدقة النظرية وما إلى ذلك.

كيف يمكنك تحديد موقعها - من داخل R وحتى من بين حزم CRAN التي لم تقم بتثبيتها؟

لذلك على سبيل المثال:العام حبكة وظيفة.يعد ضبط العلامات الثانوية أسهل بكثير باستخدام إحدى الوظائف الخارج من الحزمة الأساسية:

minor.tick(nx=n, ny=n, tick.ratio=n)

بالطبع حبكة هو في R الأساسية، ولكن قاصر. القراد ليس كذلك، إنه موجود بالفعل همسك.

وبطبيعة الحال، هذا لا يظهر في الوثائق ل حبكة, ، ولا ينبغي أن تتوقع ذلك.

مثال آخر:وسيطات إدخال البيانات إلى حبكة يمكن توفيره بواسطة كائن تم إرجاعه من الوظيفة com.hexbin, مرة أخرى، هذه الوظيفة من المكتبة الخارج من R الأساسية.

ما هو الشيء الرائع الذي من الواضح أنه طريقة برمجية لجمع وسيطات الوظائف هذه من المكتبات المختلفة ووضعها في مساحة اسم واحدة؟

*يحرر:(أحاول إعادة ذكر المثال الخاص بي أعلاه بشكل أكثر وضوحًا :) الحجج لـ حبكة المتوفرة في R الأساسية، على سبيل المثال، تحديد تردد علامة المحور هو xaxp/yaxp؛ومع ذلك، يمكن للمرء أيضًا ضبط a/t/f عبر دالة خارج الحزمة الأساسية، مرة أخرى، كما في الدالة minor.tick من الحزمة Hmisc - لكنك لن تعرف ذلك بمجرد النظر إلى توقيع طريقة الرسم .هل هناك وظيفة وصفية في R لهذا؟ *

حتى الآن، عندما صادفتهم، قمت بجمعهم يدويًا، كل مجموعة مجمعة في مجموعة واحدة TextMate مقتطف (مع واردات المكتبة المصاحبة).لا يعد هذا أمرًا صعبًا أو يستغرق وقتًا طويلاً، ولكن لا يمكنني تحديث المقتطف الخاص بي إلا عندما أكتشف هذه الوسائط/المعلمات الإضافية.هل هناك طريقة R أساسية للقيام بذلك، أو على الأقل طريقة أسهل؟

فقط في حالة عدم وضوح ذلك، فأنا لا أتحدث عن الحالة التي توفر فيها الحزم المتعددة وظائف موجهة إلى نفس الإحصائية أو العرض (على سبيل المثال، "boxplot" في الحزمة الأساسية؛"boxplot.matrix" في gplots؛و"bplots" في Rlab).ما أتحدث عنه هو الحالة التي يكون فيها اسم الوظيفة هو نفسه عبر حزمتين أو أكثر.

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

المحلول

ال "استغاثة"الحزمة هي مورد ممتاز.الواجهة الأساسية هي "findFn"، الذي يقبل سلسلة (مصطلح البحث الخاص بك) ويقوم بمسح إدخالات "الوظيفة" في قاعدة بيانات بحث موقع Johnathan Baron، ويعيد الإدخالات التي تحتوي على مصطلح البحث في إطار بيانات (من الفئة "findFn").

أعمدة إطار البيانات هذا هي: عدد, أقصى درجة, مجموع النقاط, طَرد, وظيفة, تاريخ, نتيجة, وصف, ، و وصلة.سيؤدي النقر على "رابط" في أي صف من الإدخال إلى سحب صفحة المساعدة على الفور.

مثال:لنفترض أنك تريد العثور على جميع مرشحات الالتواء عبر جميع حزم 1800+ R.

library(sos)
cf = findFn("convolve") 

سيظهر هذا الاستعلام بالمصطلح "convolve"، بمعنى آخر، لا يجب أن يكون هذا هو اسم الوظيفة.

يؤدي إدخال "cf" إلى إرجاع جدول HTML بجميع التطابقات التي تم العثور عليها (23 في هذه الحالة).هذا الجدول عبارة عن عرض HTML لإطار البيانات الذي ذكرته أعلاه.ما هو مناسب بشكل خاص هو أن كل عمود ("العدد"، "MaxScore"، وما إلى ذلك) يمكن فرزه عن طريق النقر على رأس العمود، حتى تتمكن من عرض النتائج حسب "النتيجة"، حسب "اسم الحزمة"، وما إلى ذلك.

(جانبا:عند تشغيل هذا الاستعلام بالضبط، كانت إحدى النتائج هي الوظيفة "panel.tskernel" في حزمة تسمى "latticeExtra".لم أكن أعلم أن هذه الحزمة تحتوي على أي مرشحات للسلاسل الزمنية وأشك في أنني كنت سأكتشفها بطريقة أخرى.

نصائح أخرى

سؤالك ليس من السهل الإجابة عليه.لا توجد وظيفة واحدة محددة.

formals هي الوظيفة التي تعطي اسم الشيئ وسيطات دالة وافتراضياتها في قائمة مسماة، ولكن يمكنك دائمًا الحصول على وسيطات متغيرة من خلال ... المعلمة والوسائط المسماة المخفية مع المضمنة hadArg وظيفة.للحصول على قائمة بتلك الأسماء، يجب عليك استخدام getAnywhere ثم مسح التعبير بحثًا عن hasArg.لا أستطيع التفكير في طريقة تلقائية للقيام بذلك بنفسك.هذا إذا لم يتم توثيق الوسائط المخفية للوظائف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top