दिलचस्प पोस्ट
जांचें कि क्या एक्सएसएलटी में स्ट्रिंग रिक्त या रिक्त है एक asp.net पैनल में सभी नियंत्रणों को ढूँढना? सी # में एक स्थैतिक निर्माता कहां है? सी में माप के इकाइयों – लगभग ब्राउज़र पृष्ठ में चयनित पाठ के समन्वय एक div के आंतरिक एचटीएमएल के साथ स्क्रिप्ट टैग का निर्माण कार्य नहीं करता है जावास्क्रिप्ट कुंजीकोड बनाम चारकोडा यूनिक्स / लिनक्स में विंडोज़ फ़ाइल का समय दूसरे में परिवर्तित करें एक्स-एक्स के चारों ओर एक आकृति को घुमाने के लिए बाइनरी डेटा के रूप में सर्वर पर चित्र भेजें CSS के साथ एक div के पहलू अनुपात को बनाए रखें 'एसएसएच-केजेन' को आंतरिक या बाहरी कमांड के रूप में मान्यता नहीं दी गई है php check अगर सरणी में सभी सरणी मानों को दूसरे सरणी से शामिल किया गया है मानदंड। DISTINCT_ROOT_ENTITY बनाम Projections.distinct क्यों एक संरचना उदाहरण से संपत्ति की निरंतर बाधाएं लेकिन कक्षा उदाहरण नहीं?

एक आर फ़ंक्शन में कई ऑब्जेक्ट्स रिटर्निंग

मैं आर फंक्शन में कई ऑब्जेक्ट कैसे लौटा सकता हूं? जावा में, मैं एक कक्षा बना सकता हूँ, शायद वह Person जिसके पास कुछ निजी वैरिएबल है और इनकैप्लेट करता है, शायद, height , age आदि।

लेकिन आर में, मुझे डेटा के समूह के चारों ओर से गुजरना होगा। उदाहरण के लिए, मैं एक आर फ़ंक्शन कैसे कर सकता हूं, जो कि वर्णों की एक सूची और एक पूर्णांक है?

Solutions Collecting From Web of "एक आर फ़ंक्शन में कई ऑब्जेक्ट्स रिटर्निंग"

कई अन्य भाषाओं के विपरीत, आर फ़ंक्शंस कड़ी अर्थों में कई ऑब्जेक्ट्स वापस नहीं करती हैं। इसे संभालने का सबसे सामान्य तरीका एक list वस्तु वापस करना है। इसलिए यदि आपके पास एक पूर्णांक foo और आपके फ़ंक्शन में स्ट्रिंग bar का एक वेक्टर है, तो आप ऐसी सूची बना सकते हैं जो इन मदों को जोड़ती है:

 foo <- 12 bar <- c("a", "b", "e") newList <- list("integer" = foo, "names" = bar) 

फिर इस सूची को return करें

अपने फ़ंक्शन को कॉल करने के बाद, आप इनमें से प्रत्येक को newList$integer या newList$names साथ एक्सेस कर सकते हैं।

अन्य वस्तु प्रकार विभिन्न उद्देश्यों के लिए बेहतर काम कर सकते हैं, लेकिन list ऑब्जेक्ट शुरू करने का एक अच्छा तरीका है।

इसी प्रकार जावा में, आप आर में एक एस 4 क्लास बना सकते हैं जो आपकी जानकारी का उपयोग करता है:

 setClass(Class="Person", representation( height="numeric", age="numeric" ) ) 

तब आपका फ़ंक्शन इस क्लास का एक उदाहरण वापस कर सकता है:

 myFunction = function(age=28, height=176){ return(new("Person", age=age, height=height)) } 

और आप अपनी जानकारी का उपयोग कर सकते हैं:

 aPerson = myFunction() aPerson@age aPerson@height 

क्या आप इन पंक्तियों के साथ क्या देख रहे हैं?

 x1 = function(x){ mu = mean(x) l1 = list(s1=table(x),std=sd(x)) return(list(l1,mu)) } library(Ecdat) data(Fair) x1(Fair$age) 

आप सुपर असाइनमेंट भी उपयोग कर सकते हैं।

के बजाय "<-" प्रकार "<< -" फ़ंक्शन पुनरावर्ती और बार-बार उस नाम के किसी ऑब्जेक्ट के लिए एक कार्यात्मक स्तर की खोज करेगा। अगर यह एक नहीं मिल सकता है, तो यह एक वैश्विक स्तर पर बना देगा।

आप कई ऑब्जेक्ट बनाने के for() को assign() साथ इस्तेमाल कर सकते हैं। assign() से उदाहरण देखें:

 for(i in 1:6) { #-- Create objects 'r.1', 'r.2', ... 'r.6' -- nam <- paste("r", i, sep = ".") assign(nam, 1:i) 

नई वस्तुओं को देख रहे हैं

 ls(pattern = "^r..$") 

इसे संभालने का एक तरीका प्राथमिक को एक विशेषता के रूप में जानकारी देना है। मुझे तनाव होना चाहिए, मुझे सचमुच लगता है कि यह केवल तब करना सही बात है जब जानकारी के दो टुकड़े संबंधित हैं जैसे कि किसी के पास दूसरे के बारे में जानकारी है

उदाहरण के लिए, मैं कभी-कभी "महत्त्वपूर्ण चर" या चर के नाम को छिपाना करता हूं जो कि डेटा नामों पर एक विशेषता के रूप में चर नामों की सूची को संचित करके संशोधित किया गया है:

 attr(my.DF, 'Modified.Variables') <- DVs.For.Analysis$Names.of.Modified.Vars return(my.DF) 

यह मुझे डेटा फ्रेम के साथ चर नामों की एक सूची संग्रहीत करने की अनुमति देता है I