लागू (), lapply (), sapply (), tapply () फ़ंक्शन के साथ R में उदाहरण

विषय - सूची:

Anonim

इस ट्यूटोरियल का उद्देश्य आवेदन () फ़ंक्शन संग्रह को शुरू करना है। लागू () फ़ंक्शन सभी संग्रह का सबसे बुनियादी है। हम भी नीलम (), lapply () और tapply () सीखेंगे। लागू संग्रह को लूप के विकल्प के रूप में देखा जा सकता है।

यदि आप R को एनाकोंडा के साथ स्थापित करते हैं तो लागू () संग्रह r आवश्यक पैकेज के साथ बंडल किया गया है । लागू () फ़ंक्शन को ऑब्जेक्ट के संग्रह (डेटा फ़्रेम, सूची, वेक्टर, आदि) पर अनावश्यक आवेदन करने के लिए कई कार्यों के साथ फीड किया जा सकता है। लागू करने का उद्देश्य () मुख्य रूप से लूप निर्माण के स्पष्ट उपयोग से बचने के लिए है। उनका उपयोग एक इनपुट सूची, मैट्रिक्स या सरणी के लिए किया जा सकता है और एक फ़ंक्शन लागू कर सकता है। किसी भी फ़ंक्शन को लागू () में पारित किया जा सकता है।

इस ट्यूटोरियल में, आप सीखेंगे

  • लागू () फ़ंक्शन
  • lapply () फ़ंक्शन
  • sapply () फ़ंक्शन
  • स्लाइस वेक्टर
  • tapply () फ़ंक्शन

लागू () फ़ंक्शन

लागू () डेटा फ्रेम या मैट्रिक्स को इनपुट के रूप में लेता है और वेक्टर, सूची या सरणी में आउटपुट देता है। लागू () फंक्शन मुख्य रूप से लूप निर्माण के स्पष्ट उपयोग से बचने के लिए उपयोग किया जाता है। यह सभी संग्रहों में सबसे अधिक बुनियादी है जिसका उपयोग एक मैट्रीस पर किया जा सकता है।

यह फ़ंक्शन 3 तर्क लेता है:

apply(X, MARGIN, FUN)Here:-x: an array or matrix-MARGIN: take a value or range between 1 and 2 to define where to apply the function:-MARGIN=1`: the manipulation is performed on rows-MARGIN=2`: the manipulation is performed on columns-MARGIN=c(1,2)` the manipulation is performed on rows and columns-FUN: tells which function to apply. Built functions like mean, median, sum, min, max and even user-defined functions can be applied>

सबसे सरल उदाहरण सभी स्तंभों पर एक मैट्रिक्स का योग है। कोड लागू (m1, 2, sum) मैट्रिक्स फ़ंक्शन को 5x6 पर लागू करेगा और डेटासेट में सुलभ प्रत्येक कॉलम का योग लौटाएगा।

m1 <- matrix(C<-(1:10),nrow=5, ncol=6)m1a_m1 <- apply(m1, 2, sum)a_m1

आउटपुट:

सर्वोत्तम अभ्यास: कंसोल पर प्रिंट करने से पहले मूल्यों को संग्रहीत करें।

lapply () फ़ंक्शन

lapply () फ़ंक्शन सूची ऑब्जेक्ट पर कार्रवाई करने के लिए उपयोगी है और मूल सेट की समान लंबाई की सूची ऑब्जेक्ट लौटाता है। lappy () इनपुट सूची ऑब्जेक्ट के समान लंबाई की एक सूची देता है, जिनमें से प्रत्येक तत्व FUN को सूची के संबंधित तत्व पर लागू करने का परिणाम है। lapply () इनपुट के रूप में सूची, वेक्टर या डेटा फ़्रेम लेता है और सूची में आउटपुट देता है।

lapply(X, FUN)Arguments:-X: A vector or an object-FUN: Function applied to each element of x

lapply में () सूची के लिए खड़ा है। लैपली (और लागू) के बीच का अंतर आउटपुट रिटर्न के बीच है। Lapply () का आउटपुट एक सूची है। lapply () का उपयोग अन्य वस्तुओं जैसे डेटा फ्रेम और सूचियों के लिए किया जा सकता है।

lapply () फ़ंक्शन को MARGIN की आवश्यकता नहीं है।

एक बहुत ही आसान उदाहरण एक मैट्रिक्स के स्ट्रिंग मान को टोलवर फ़ंक्शन के साथ निचले मामले में बदलने के लिए हो सकता है। हम प्रसिद्ध फिल्मों के नाम के साथ एक मैट्रिक्स का निर्माण करते हैं। नाम ऊपरी मामले प्रारूप में है।

movies <- c("SPYDERMAN","BATMAN","VERTIGO","CHINATOWN")movies_lower <-lapply(movies, tolower)str(movies_lower)

आउटपुट:

## List of 4## $:chr"spyderman"## $:chr"batman"## $:chr"vertigo"## $:chr"chinatown"

सूची को वेक्टर में बदलने के लिए हम अनलिस्ट () का उपयोग कर सकते हैं।

movies_lower <-unlist(lapply(movies,tolower))str(movies_lower)

आउटपुट:

## chr [1:4] "spyderman" "batman" "vertigo" "chinatown"

sapply () फ़ंक्शन

sapply () फ़ंक्शन इनपुट के रूप में सूची, वेक्टर या डेटा फ़्रेम लेता है और वेक्टर या मैट्रिक्स में आउटपुट देता है। यह सूची ऑब्जेक्ट्स के संचालन के लिए उपयोगी है और मूल सेट की समान लंबाई की सूची ऑब्जेक्ट लौटाता है। sapply () फ़ंक्शन lapply () फ़ंक्शन के समान कार्य करता है लेकिन एक वेक्टर लौटाता है।

sapply(X, FUN)Arguments:-X: A vector or an object-FUN: Function applied to each element of x

हम कारों के डाटासेट से कारों की न्यूनतम गति और रोक दूरी को माप सकते हैं।

dt <- carslmn_cars <- lapply(dt, min)smn_cars <- sapply(dt, min)lmn_cars

आउटपुट:

## $speed## [1] 4## $dist## [1] 2
smn_cars

आउटपुट:

## speed dist## 4 2
lmxcars <- lapply(dt, max)smxcars <- sapply(dt, max)lmxcars

आउटपुट:

## $speed## [1] 25## $dist## [1] 120
smxcars

आउटपुट:

## speed dist## 25 120

हम अंतर्निहित उपयोगकर्ता को lapply () या sapply () में उपयोग कर सकते हैं। हम वेक्टर के न्यूनतम और अधिकतम के औसत की गणना करने के लिए एक फ़ंक्शन नाम बनाते हैं।

avg <- function(x) {( min(x) + max(x) ) / 2}fcars <- sapply(dt, avg)fcars

उत्पादन

## speed dist## 14.5 61.0

sapply () फ़ंक्शन लौटेली () आउटपुट से अधिक कुशल है क्योंकि लौटा हुआ (क्योंकि) स्टोर वैल्यू को एक वेक्टर में स्टोर करता है। अगले उदाहरण में, हम देखेंगे कि यह हमेशा ऐसा नहीं होता है।

हम निम्नलिखित तालिका में लागू (), सैप्ली () और `लेप्पीली) के बीच अंतर को संक्षेप में बता सकते हैं:

समारोह

बहस

उद्देश्य

इनपुट

उत्पादन

लागू

लागू करें (x, MARGIN, FUN)

किसी फ़ंक्शन को पंक्तियों या स्तंभों या दोनों पर लागू करें

डेटा फ्रेम या मैट्रिक्स

वेक्टर, सूची, सरणी

आलसी

lapply (X, FUN)

इनपुट के सभी तत्वों के लिए एक फ़ंक्शन लागू करें

सूची, वेक्टर या डेटा फ़्रेम

सूची

नीलम

सैप्पी (X FUN)

इनपुट के सभी तत्वों के लिए एक फ़ंक्शन लागू करें

सूची, वेक्टर या डेटा फ़्रेम

वेक्टर या मैट्रिक्स

स्लाइस वेक्टर

हम डेटा फ्रेम को स्लाइस करने के लिए lapply () या sapply () विनिमेय का उपयोग कर सकते हैं। हम एक फ़ंक्शन बनाते हैं, नीचे_आवरेज (), जो संख्यात्मक मानों का एक वेक्टर लेता है और एक वेक्टर देता है जिसमें केवल वे मान होते हैं जो औसत से सख्ती से ऊपर होते हैं। हम समान () फ़ंक्शन के साथ दोनों परिणामों की तुलना करते हैं।

below_ave <- function(x) {ave <- mean(x)return(x[x > ave])}dt_s<- sapply(dt, below_ave)dt_l<- lapply(dt, below_ave)identical(dt_s, dt_l)

आउटपुट:

## [1] TRUE

tapply () फ़ंक्शन

tapply () एक उपाय की गणना करता है (मतलब, माध्यिका, न्यूनतम, अधिकतम आदि ...) या वेक्टर में प्रत्येक कारक चर के लिए एक फ़ंक्शन। यह एक बहुत ही उपयोगी फ़ंक्शन है जो आपको वेक्टर का एक सबसेट बनाने की सुविधा देता है और फिर प्रत्येक सबसेट में कुछ फ़ंक्शन लागू करता है।

tapply(X, INDEX, FUN = NULL)Arguments:-X: An object, usually a vector-INDEX: A list containing factor-FUN: Function applied to each element of x

एक डेटा वैज्ञानिक या शोधकर्ताओं के काम का हिस्सा चर के सारांश की गणना करना है। उदाहरण के लिए, एक विशेषता के आधार पर औसत या समूह डेटा को मापें। अधिकांश डेटा आईडी, शहर, देशों, और इसी तरह से समूहीकृत हैं। समूह में सारांशित करने से अधिक दिलचस्प पैटर्न का पता चलता है।

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

पूर्व कार्य के रूप में, हम प्रत्येक प्रजाति के लिए लंबाई के माध्य की गणना कर सकते हैं। tapply () इस गणना को करने का एक त्वरित तरीका है।

data(iris)tapply(iris$Sepal.Width, iris$Species, median)

आउटपुट:

## setosa versicolor virginica## 3.4 2.8 3.0