2015-12-22 13 views
5

Bu kitapta yeniyim ve ilk bölümün örnek kodunda bir hata alıyorum. En son R 3.2.3 ve RStudio sürümünü kurdum. Örnek kod tarafından verilen package_install.R dosyasını kurdum ve ggplot2'yi kendim yükledim. Ben kodu ufo_sightings.R çalıştırdığınızdaBilgisayar korsanları için Makine Öğrenme kodunda strsplit (unitpec, "") hatası

`stat_bin()` using `bins = 30`. Pick better value with `binwidth`. 
Error in strsplit(unitspec, " ") : non-character argument 
In addition: Warning message: 
Removed 1 rows containing non-finite values (stat_bin). 

Ben R için yeni izleyin, ben bu yüzden yanlış hiçbir fikrim yok bir hata var. Biri yardım edebilir mi? R'nin en son sürümünü kullandığım için mi?

Düzenleme: Sanırım nedenini buldum. Ggplot'u 1.01 sürümüne değiştirirsem iyi çalıştı. Eğer 2.0.0'a yükseltirsem hata oluşur. Sanırım bir böcek mi?

+0

Olası sebep - 'ggplot2''ün yeni bir sürümü çıktı. Bkz. Http://blog.rstudio.org/2015/12/21/ggplot2-2-0-0/ – Jubbles

+0

ggplot2'yi düşürmeyi denedim, ancak ggplot2_1.0.1'in R3.2.3 için mevcut olmadığını söyledi. Şimdi R'yi 3.2.2'ye düşürmeyi denedim, ama yine de aynı problemi yaşadım. – Ben

+0

Drew Conway ve John Myles White tarafından Hackers_ için _Machine Learning'in bir kopyasına sahibim ve 1. Bölümde alıntı yaptığınız örneği göremiyorum. Doğru kitaba sahip olduğumu ve bir sayfa referansı sağladığımı doğrulayabilir misiniz? – Jubbles

cevap

9

Sorun, scale_x_date ggplot işlevinde yatar.

quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) + 
    geom_histogram() + 
    scale_x_date(breaks = "50 years") 

scale_x_date içinde sonları date_breaks şekilde ayarlanmıştır: orijinal kodunda bu kodlanmıştır. Kodu aşağıdaki şekilde ayarlarsanız çalışır. Eğer ggplot ve scale_x_date bakınız kod kalanında

quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) + 
    geom_histogram() + 
    scale_x_date(date_breaks = "50 years", date_labels = "%Y") 

, sen date_breaks içine sonları ayarlamak zorunda kalacaktır.

+0

Neden "scale_x_date" ile "minor_breaks" kullanamazsınız? –

0

Benim için hem ggplot 1.0.1 sürümünü kullanarak ve DateOepured için 50 yıl boyunca DateReported için date_breaks'i ayarlayarak, kesinlikle gayet iyi çalışıyor ve güzel bir görselleştirme sağlıyor.

quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) + 
    geom_histogram() + scale_x_date(date_breaks = "50 years", date_labels = "%Y") 

quick.hist <- ggplot(ufo.us, aes(x = DateReported)) + 
    geom_histogram() + 
    scale_x_date(date_breaks = "10 years", date_labels = "%Y") 
İlgili konular