R में do.call का उपयोग कैसे करें (3 उदाहरण)


किसी दिए गए फ़ंक्शन को संपूर्ण सूची में लागू करने के लिए आप R में do.call() का उपयोग कर सकते हैं।

यह फ़ंक्शन निम्नलिखित मूल सिंटैक्स का उपयोग करता है:

 do. call (function, list)

निम्नलिखित उदाहरण दिखाते हैं कि व्यवहार में do.call() का उपयोग कैसे करें।

उदाहरण 1: योग के साथ do.call() का प्रयोग करें

निम्नलिखित कोड दिखाता है कि किसी सूची में मानों के योग की गणना करने के लिए do.call() का उपयोग कैसे करें:

 #create list
values_list <- list(A=c(1, 2, 3), B=c(7, 5, 10), C=c(9, 9, 2))

#calculate sum of values in list
do. call (sum, values_list)

[1] 48

सूची में मानों का योग 48 है।

ध्यान दें कि यदि हम सीधे सूची के साथ sum() का उपयोग करने का प्रयास करेंगे तो हमें एक त्रुटि प्राप्त होगी:

 #create list
values_list <- list(A=c(1, 2, 3), B=c(7, 5, 10), C=c(9, 9, 2))

#attempt to sum values in list
sum(values_list)

Error in sum(values_list): invalid 'type' (list) of argument

उदाहरण 2: औसत के साथ do.call() का उपयोग करें

निम्नलिखित कोड दिखाता है कि किसी सूची में मानों के औसत की गणना करने के लिए do.call() का उपयोग कैसे करें:

 #define argument to use in do.call
args <- list(1:20, na. rm = TRUE )

#calculate mean of values in list
do. call (mean, args)

[1] 10.5

सूची में मानों का औसत 10.5 है।

ध्यान दें कि यदि हम सीधे सूची के साथ मीन() का उपयोग करने का प्रयास करेंगे तो हमें एक त्रुटि प्राप्त होगी:

 #attempt to calculate mean of values in list
mean(list(1:20), na. rm = TRUE )

[1] NA
Warning message:
In mean.default(list(1:20), na.rm = TRUE):
  argument is not numeric or logical: returning NA

उदाहरण 3: rbind के साथ do.call() का उपयोग करें

निम्नलिखित कोड दिखाता है कि R में एकाधिक डेटा फ़्रेम कनेक्ट करने के लिए do.call() का उपयोग कैसे करें:

 #create three data frames
df1 <- data. frame (team=c('A', 'B', 'C'),
                  dots=c(22, 27, 38))

df2 <- data. frame (team=c('D', 'E', 'F'),
                  dots=c(22, 14, 20))

df3 <- data. frame (team=c('G', 'H', 'I'),
                  dots=c(11, 15, 18))

#place three data frames into list
df_list <- list(df1, df2, df3)

#row bind together all three data frames
do. call (rbind, df_list)

  team points
1 to 22
2 B 27
3 C 38
4 D 22
5 E 14
6 F 20
7 G 11
8:15 a.m.
9 I 18

परिणाम एक डेटा फ़्रेम है जिसमें तीनों डेटा फ़्रेमों में से प्रत्येक की पंक्तियाँ शामिल हैं।

ध्यान दें कि यदि हम सीधे सूची के साथ rbind() का उपयोग करने का प्रयास करते हैं तो हमें वांछित डेटा फ़्रेम प्राप्त नहीं होगा:

 #create three data frames
df1 <- data. frame (team=c('A', 'B', 'C'),
                  dots=c(22, 27, 38))

df2 <- data. frame (team=c('D', 'E', 'F'),
                  dots=c(22, 14, 20))

df3 <- data. frame (team=c('G', 'H', 'I'),
                  dots=c(11, 15, 18))

#place three data frames into list
df_list <- list(df1, df2, df3)

#attmempt to row bind together all three data frames
rbind(df_list)

        [,1] [,2] [,3]  
df_list List,2 List,2 List,2

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि R में अन्य सामान्य फ़ंक्शंस का उपयोग कैसे करें:

आर में पेस्ट और पेस्ट0 फ़ंक्शन का उपयोग कैसे करें
आर में रिप्लेस() फ़ंक्शन का उपयोग कैसे करें
आर में व्यू() फ़ंक्शन का उपयोग कैसे करें
आर में प्रतिनिधि() फ़ंक्शन का उपयोग कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *