2013-01-22 15 views
10

3 değişkenli bir veri katmanı "katilleri" oluşturdum. Veriler, NA değerleri boyunca mevcut olsa da sayısaldur.Medyan hesaplanırken na.rm = TRUE nasıl saplanır?

Amacım, 3 değişkeninin her birinin ortalamasını hesaplamaktır.

sapply(killers, function(x) median) 

Bu döndürür:

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

Ben na.rm argüman NA değerlerini görmezden bir araç olduğunu biliyoruz. R tarafından iade edilen na.rm = FALSE sürümünden bu yana, yukarıdaki kod satırında bunu TRUE olarak ayarlamanın bir yolu olduğunu varsayar. Birkaç varyasyonlar denedi:

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

ben yakınım emin değilim ya bu sanki gereğince, yuvalama fonksiyonları dahil etmek için gidiyor diğer benzer (görebildiğim bu durumda sonuçta yararlı olmasa da) SO konusundaki yazılar. Örneğin. How to pass na.rm as argument to tapply? Tabii Ignore NA's in sapply function

, sadece katilleri oluşturmak için kullanılan her vektör üzerinde ortalamasını hesaplamak olabilir, ama kesinlikle ne soran sonra mümkün olup olmadığını daha iyi olur.

+3

'sapply' diyor (kodunuza göre) olacağını "...: 'EĞLENCE' isteğe bağlı argümanlar." ve * Örnekler * bölümündeki fonksiyonlara ek argümanların nasıl iletileceğine dair örnekler vardır. –

+0

@JoshuaUlrich bu saldırı anlamına gelmez. –

+2

'Sapply' işlevini 'medyan' olarak döndürmesini istediniz ve bu tam olarak ne yaptı. Fonksiyonlar nesnelerdir. (Yapmadığın şey, ona medyan (x) 'i döndürmek olduğunu söylemekti.) –

cevap

27

Hemen yapın:?

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

alternatif

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