2013-01-22 15 views
10

मैंने 3 चर के साथ "हत्यारा" डेटाफ्रेम बनाया है। डेटा संख्यात्मक है हालांकि पूरे NA मूल्य मौजूद हैं।औसत की गणना करते समय na.rm = TRUE को सही तरीके से कैसे पास किया जाए?

मेरा लक्ष्य 3 चरों में से प्रत्येक पर माध्य की गणना करना है।

sapply(killers, function(x) median) 

यह रिटर्न:

$heartattack 
function (x, na.rm = FALSE) 
UseMethod("median") 
<bytecode: 0x103748108> 
<environment: namespace:stats> 

मुझे पता है कि na.rm तर्क NA मूल्यों की अनदेखी करने के एक साधन है। चूंकि na.rm = FALSE आर द्वारा लौटाए गए में मौजूद है, इसलिए एक मानता है कि ऊपर दिए गए कोड की पंक्ति के भीतर इसे TRUE पर सेट करने का एक तरीका है। मैं कुछ रूपों की कोशिश की:

sapply(killers, na.rm=TRUE function(x) median) 
sapply(killers, function(x) median, na.rm=TRUE) 
sapply(killers, function(x) median(na.rm=TRUE)) 

मैं या यकीन है कि अगर मैं पास हूँ नहीं कर रहा हूँ इस अगर, घोंसले कार्यों को शामिल करने के प्रति के रूप में जा रहा है इसी तरह की अन्य (हालांकि अंतत: इस उदाहरण में मददगार नहीं है कि मैं देख सकते हैं) एसओ पर विषय पर पोस्ट। जैसे How to pass na.rm as argument to tapply?, Ignore NA's in sapply function

बेशक

, मैं सिर्फ प्रत्येक वेक्टर कि हत्यारों बनाने के लिए इस्तेमाल किया गया था पर मतलब की गणना कर सकता है, लेकिन निश्चित रूप से अगर मैं क्या पूछ रहा हूँ तो संभव है कि बेहतर है।

+3

'sapply' कहते हैं?" ...: 'मज़ा' के लिए वैकल्पिक तर्क। " और * उदाहरण * खंड में कार्यों के लिए अतिरिक्त तर्क कैसे पारित करने के उदाहरण हैं। –

+0

@ जोशुआउलिच उस आक्रामक होने का मतलब नहीं था। –

+2

आपने 'sapply' से फ़ंक्शन' median' वापस करने के लिए कहा और यह वही है जो उसने किया था। कार्य वस्तुएं हैं। (आपने जो नहीं किया वह उसे 'माध्य (x) 'वापस करने के लिए कहता था।) –

उत्तर

27

बस कार्य करें:

sapply(killers, median, na.rm = TRUE) 

एक वैकल्पिक (अपने कोड के आधार पर) की जाएगी

sapply(killers, function(x) median(x, na.rm=TRUE)) 
संबंधित मुद्दे