आर

2012-11-12 16 views
5

में किसी सूची के तत्वों पर औसत कार्य कैसे लागू करें मेरे पास एक सूची है और मैं अपने तत्वों के माध्य की गणना करने के लिए lapply() का उपयोग करना चाहता हूं। उदाहरण के लिए, सूची के सातवें आइटम के लिए मेरे पास है:आर

>list[[7]] 
[1] 1 1 1 1 1 1 1 1 1 1 

और मेरे उत्पादन किया जाना चाहिए:

> mean(temp[[7]][1:10]) 
[1] 1 

लेकिन जब मैं परिणाम के नीचे की तरह lapply() का उपयोग कुछ और होगा। मुझे क्या करना चाहिए?

> lapply(list[[7]][1:10],mean) 
[[1]] 
[1] 1 

[[2]] 
[1] 1 
. 
. 
. 
[[10]] 
[1] 1 
+2

समझाते हुए भी एक अच्छा काम करता है यदि आप सूची के एक तत्व पर 'lapply' का उपयोग करते हैं, तो आप वेक्टर के प्रत्येक तत्व का अर्थ लेने जा रहे हैं। इसके बजाय 'lapply (सूची, मतलब)' का उपयोग करें। साथ ही, एक चर नाम के रूप में 'सूची' का उपयोग करना एक महत्वपूर्ण विचार है क्योंकि यह एक महत्वपूर्ण कार्य है! – Justin

उत्तर

8

सूची के 7 वें तत्व का मतलब प्राप्त करने के लिए बस mean(list[[7]]) का उपयोग करें। सूची के प्रत्येक तत्व का अर्थ प्राप्त करने के लिए lapply(list,mean) का उपयोग करें। और आपकी सूची list पर कॉल करना वाकई एक बुरा विचार है।

+0

धन्यवाद :) और मैं नाम बदल दूंगा – hora

+0

@ होरा अगर आपको लगता है कि यह उत्तर आपको जो कुछ ढूंढ रहा था उसके पर्याप्त विवरण प्रदान करता है, तो स्कोर के नीचे ग्रे चेक मार्क को चेक करके इसे सही मानने के लिए स्वतंत्र महसूस करें । –

4

lapply के बजाय sapply का उपयोग करने पर विचार करें।

# sample data 
a<- 1:3 
dat <- list(a, a*2, a*3) 

# sapply gives a tidier output 
> sapply(dat, mean) 
[1] 2 4 6 

> lapply(dat, mean) 
[[1]] 
[1] 2 

[[2]] 
[1] 4 

[[3]] 
[1] 6 



इसके अलावा, आप plyr पैकेज पर एक नज़र लेने के लिए चाहते हो सकता है। This question विभिन्न * लागू फ़ंक्शंस