2015-12-22 10 views
5

私はこの本を初めて使用し、最初の章のサンプルコードでエラーが発生します。 R 3.2.3とRStudioの最新バージョンをインストールしました。サンプルコードで与えられたpackage_install.Rをインストールし、ggplot2を自分でインストールしました。私は、コードufo_sightings.Rを実行すると、私は私が間違って何であるか見当がつかないハッカーのための機械学習のコードのstrsplit(unitspec、 "")のエラー

`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). 

に従うように私はRに新しいですエラーが発生しました。誰も助けることができますか?それは私がRの最新バージョンを使ったからでしょうか?

編集:私は理由を見つけたと思う。 ggplotを1.01に変更するとうまくいきました。 2.0.0にアップグレードすると、エラーが発生します。私はそれがバグだと思いますか?

+0

考えられる理由 - 新しいバージョンの 'ggplot2'がちょうど出てきました。 http://blog.rstudio.org/2015/12/21/ggplot2-2-0-0/ – Jubbles

+0

ggplot2をダウングレードしようとしましたが、R3.2.3ではggplot2_1.0.1が利用できません。今、私はRを3.2.2にダウングレードしようとしましたが、それでも同じ問題がありました。 – Ben

+0

私はDrew ConwayとJohn Myles Whiteの_Machine Learning for Hackersのコピーを持っています。私はあなたが第1章で引用している例は見ません。正しい本があり、ページ参照を提供していることを確認できますか? – Jubbles

答えて

9

問題は、ggplot関数scale_x_dateにあります。元のコードでは、これは次のように符号化される。

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

scale_x_dateにおけるブレークdate_breaksに調整しました。コードを以下のように調整すれば、それは機能します。あなたはggplotとscale_x_dateを参照してくださいコードの残りの部分で

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

、あなたはdate_breaksに休憩を調整する必要があります。

+0

'minor_breaks'を' scale_x_date'で使用できないのはなぜですか? –

0

ggplot 1.0.1バージョンを使用し、DateReportedのdate_breaksを10年間、DateOrpuredの50年間を調整すると、どちらも素晴らしい動作をして素晴らしいビジュアリゼーションを生成します。

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")