2010-08-16 20 views
23

demek: bir döngü olmadanEleman-Wise, iki vektörleri var R ise R

a <- c(1, 2, 3, 4) 
b <- c(NA, 6, 7, 8) 

nasıl iki vektörün öğeye göre ortalama bulurum, NA çıkarmadan? yani ben argüman na.rm = 1 biliyorum, işlevini mean() biliyorum

(1, 4, 5, 6) 

vektörü almak istiyorum. Ama bir şeyleri nasıl bir araya getireceğimi bilmiyorum. Emin olmak gerekirse, gerçekte çeşitli yerlerden görünen NA'lı binlerce vektörüm var, bu yüzden herhangi bir boyuta bağlı çözüm işe yaramayacaktır. Teşekkürler.

cevap

31

nasıl:

rowMeans(cbind(a, b), na.rm=TRUE) 

veya

colMeans(rbind(a, b), na.rm=TRUE) 
+0

Tamam, bunlar harika. Ama istediğimi elde etmek için hala 'na.rm = 1' eklemeniz gerekiyor ve bu benim problemimi çözüyor. Teşekkürler. – Zhang18

+0

Sadece na.rm argümanlarını ekledim. – Greg

+0

'colSums' ve' rowSums' ayrıca @ Zhang18, FYI. – Vince

3

ki sen soruyorsun tam olarak emin değilim, ama

apply(rbind(a,b),2,mean,na.rm = TRUE) 

istediğini yapar?

+0

Evet, bu da çalışıyor. Teşekkürler. – Zhang18

+6

? ColMeans ve? RowMeans öğelerinin Ayrıntılar bölümünde, bu işlevlerin, eğlence için uygulandıkları hızdan çok daha hızlı olduğunu açıklar. – Greg