2012-10-25 17 views
8
Bir barplot histogram verilerini hazırlık ama benim etiketler ve sonları arasında görünen tutarsızlık içine çalışmasını sağlamak için kesme fonksiyonu ile çalışıyorum

:Kes ve etiket/sonları uzunluk çatışma

Error in cut.default(sample(1:1e+05, 500, T), breaks = sq, labels = sprintf("$%.0f", : labels/breaks length conflict İşte

bir örnektir . Gelir verileriymiş gibi davranıyorum, 10,000 dolarlık bidonlarda 100 ila 100.000 arası bir dizi kullanıyor. Aynı değişkenleri, etiket tarafında küçük biçimlendirmeler yaparak hem kopukluk hem de etiket oluşturmak için kullanıyorum. Bir karakter vektörü ile karşılaştırıldığında bazı nedenlerin farklı uzunluklara sahip olabileceğini sanıyordum, ama yine de aynı uzunluğa sahip görünüyorlar.

> sq<-seq(0,100000,10000) 
> cut(sample(1:100000, 500, T),breaks=sq,labels=sprintf("$%.0f",sq)) 
> length(sprintf("$%.0f",sq)) 
[1] [11] 
> length(sq) 
[1] [11] 

DÜZENLEME: @thelatemail ve @Josh O'Brien'ın önerileri Başına

, bu kodu değişti ve işler çalışma düzeni. cut(sample(1:100000, 500, T),breaks=sq,labels=sprintf("$%.0f",sq[-1]))

+1

'uzunluğu (tablo (kesim (örneği (1: 100000, 500, T) sonları = metre kare))) 'nedenle,' daki uyumsuzluğu 10 'olan. – thelatemail

+0

Son sonuç bir histogram olacaksa, neden 'break' parametresini' hist() 'işlevine kullanmıyorsunuz? –

+0

Yaptığım şey bu. Ama neden "cut" meselesini neden aynı şekilde çözemediğimi merak ediyordum. – ako

cevap

18

cut() ile, 11 kırma, yalnızca 10 etiket gerektiren 10 seviyeyi sınırlar. "labels/breaks length conflict" hatası, sprintf() numaralı aramanın labels= bağımsız değişkenine çok fazla etiket sağladığını bildiriyor. kodda

:

breaks <- 0:10/10 
dat <- runif(1e4) 

length(breaks) 
# [1] 11 
length(levels(cut(breaks, sq))) 
# [1] 10 
+2

Güzel ve açık. Şaşırtıcı bir şekilde, [cut() '] için çok net olmayan bir belge (https://stat.ethz.ch/R-manual/R-devel/library/base/html/cut.html) demiyor her yerde * "kırılma" bir vektör ise, o zaman "etiketler", kırılma "den daha az olan bir vektör olmalıdır" *. Bir doktor geliyorum. – smci