2013-05-22 16 views
15

İki sürekli değişken (Population and Income) ve iki faktör değişken (bölge ve alan) içeren state.x77 yerleşik matrisinden state adlı bir veri kümesi oluşturdum .unique.default (x) içinde benzersiz R hatası() yalnızca vektörlere uygulanır

Ben tapply(), by(), aggregate() ve ave() döndürülen nesnenin biçimini görmek için kullanarak bölgeye göre gelir demek bilgisayarlı.

Ama ave() çağrısı hatayı unique.default içinde

Hata (x) veriyor:

## Mean income by region 
tapply(state$inc, state$region, mean) 
# Northeast   South North Central   West 
# 4570.222  4011.938  4611.083  4702.615 

by(state$inc, state$region, mean) 
# state$region: Northeast 
# 
# [1] 4570.222 
# [...] 

aggregate(state$inc, list(state$region), mean) 
# 
#   Group.1  x 
# 1  Northeast 4570.222 
# 2   South 4011.938 
# 3 North Central 4611.083 
# 4   West 4702.615 

ave(state$inc, state$region, mean) 
# Error in unique.default(x) : unique() applies only to vectors 
:) (benzersiz sadece vektörler

koddur için geçerlidir

Hata neden oluşuyor? Bunu nasıl önleyebilirim?

cevap

16

Bu çok yaygın bir hatadır, adlandırılmış argümanını FUN kullanmak gerekir: (. ave için ... argümanın parçası)

ave(state$inc, state$region, FUN = mean) 

aksi mean başka gruplama değişken olarak yorumlanır

+0

Tanklarının sen çok hata engellendi. Ama ben de FUN'u tapply(), by(), aggregate() komutunda kullanmadım. O zaman neden bu hata oluşmadı? – time

+2

Çünkü 'ave'nin özniteliği (argüman listesi), 'FUN' ** sonra **' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ile özellikle geçmezseniz, o zaman R düşünür. '' 'argümanının bir parçası ve' FUN' için varsayılanı ('mean') kullanın. – flodel

+0

Teşekkür ederim, Teşekkür ederim, Çok teşekkür ederim. r'de yeni başlayan biriyim Bilgimi geliştirebilmem için bana tavsiyede bulunabilir misiniz? – time