2016-09-21 20 views
2

私は最近Rバージョンを3.2.3にアップグレードし、私のパッケージを更新しました。その後バージョンのggplot2とCRANバージョンggrepelをインストールしました。ggplot2のGithubバージョンでゼロレンジ()のエラーが発生しました

使用しているパッケージのバージョンは以下のとおりです。

ggplot2: 2.1.0.9000 
ggrepel: 0.5 
scales: 0.4.0 

しかし、これらのパッケージをロードした後、私もggrepelのために提供されるサンプルスクリプトを実行することはできません。

library(ggrepel) 
p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars))) 
# Avoid overlaps by repelling text labels 
p + geom_text_repel() 

Error in zero_range(from) : x must be length 1 or 2 

を機能zero_range()からですscalesパッケージ。しかし、私にとって奇妙なのは、ggplot2をCRAN (version 2.1.0)からインストールすると、ggrepelが期待どおりに動作することです。
scalesまたはggrepelを更新または再インストールしても効果はありません。

古いバージョンのR 3.1.3では、Githubからggplot2(字幕とキャプションを使用する)をインストールしていて、うまくいきました。

マイセッション情報は、次のとおりです。で

ggproto("LayerInstance", Layer, geom = geom, geom_params = geom_params, 
     stat = stat, stat_params = stat_params, data = data, 
     mapping = mapping, aes_params = aes_params, subset = subset, 
     position = position, inherit.aes = inherit.aes, show.legend = show.legend) 

、その中:

R version 3.2.3 (2015-12-10) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] ggrepel_0.5  ggplot2_2.1.0.9000 

loaded via a namespace (and not attached): 
[1] labeling_0.3  colorspace_1.2-6 scales_0.4.0  assertthat_0.1 lazyeval_0.2.0 plyr_1.8.4  
[7] tools_3.2.3  gtable_0.2.0  tibble_1.2  Rcpp_0.12.7  grid_3.2.3  munsell_0.4.3 

私のデバッグから、エラーがこの機能で発生

function (`_class` = NULL, `_inherit` = NULL, ...) 
{ 
    e <- new.env(parent = emptyenv()) 
    members <- list(...) 
    if (length(members) != sum(nzchar(names(members)))) { 
     stop("All members of a ggproto object must be named.") 
    } 
    if (length(members) > 0) { 
     list2env(members, envir = e) 
    } 
    if (!is.null(`_inherit`)) { 
     if (!is.ggproto(`_inherit`)) { 
      stop("`_inherit` must be a ggproto object.") 
     } 
     e$super <- `_inherit` 
     class(e) <- c(`_class`, class(`_inherit`)) ###### Here layeth the error, as I think 
    } 
    else { 
     class(e) <- c(`_class`, "ggproto") 
    } 
    e 
} 

しかし、私は無知ですその解決策について。

+3

私はあなたのエラーを確認することができますし、 'ggplot2'の' CRAN'バージョンを使用し、ここでエラーを報告する必要があります。https:// githubの。 com/hadley/ggplot2/issues –

+0

@J_F確認していただきありがとうございます! –

答えて

4

ggrepelの最新の開発版を使用すると、エラーが表示されなくなりました。

devtools::install_github("slowkow/[email protected]")

パッケージのバージョンをインストールします。

ggplot2 * 2.1.0.9001 2016-10-07 Github (hadley/[email protected]) 
ggrepel * 0.6.2  2016-10-07 Github (slowkow/[email protected]) 
scales  0.4.0.9003 2016-10-07 Github (hadley/[email protected]) 
+3

実際には、新しいggplot2をインストールするたびにggrepelを再インストールしてください。 ggprotoのため。 slowkowとaphaloの詳細を参照してください。https://github.com/slowkow/ggrepel/issues/55#issuecomment-255364286 – aurelien

関連する問題