çalışır. dplyr, diğer şeylerin yanı sıra, özellikle de bu kütüphanelerden birini kütüphane aracılığıyla yükleyen paketleri yüklerken (yapmamalılar, fakat bazıları hala yapılıyorsa) veya .Rprofile
(yok!) 'a dplyr yüklediğinizde MASS::select
, plyr::summarise
ve stats::filter
ile çakışıyor. Ve her zaman bir hata iletisi, özellikle plyr
ile çatışmalar, oldukça belirsiz sorunlara yol açabilir.
Yalnızca kısa bir süre önce conflicts()
işlevini öğrendim. İki paket aynı işlevlere sahip olduğunda yararlıdır, ancak "aşırı rapor" çakışmaları, ör. tidyr :: %>%
ve dplyr :: %>%
.
Bu yüzden bana kızgın olup olmadığımı veya gerçekte hataya neden olan bir çakışma olup olmadığını öğrenmek için a function yazdım. Sadece anlaşmazlıkları kontrol etmekle kalmaz, istenen bir paketin "üstte" olup olmadığını ve fonksiyonun gövdesinin gerçekten farklı olup olmadığını kontrol eder.
Varsayılan olarak dplyr için bunu yapar, ancak want_package
parametresini kullanarak başka bir paket belirtebilirsiniz. Örneğin, çoğu paketlerde yeniden kullanılan recode
ve alpha
tarafından sık sık tetiklenir.
Kullanımı kolaydır: amigoingmad()
. Varsayılan olarak
, bununla birlikte otomatik olarak "düzeltme" şeyler dplyr değilse "üstte", aşağıdaki komutları kullanarak: Bir kullanıcı tarafından belirtilen işlevi engelliyorsa işlevi rapor edeceğini
detach("package:dplyr", character.only = TRUE)
library("dplyr", character.only = TRUE)
Not dplyr, ancak güvenlik için bunu otomatik olarak düzeltir (sadece bu durumda işlevi kaldırın).
Bu çözüm henüz benim için herhangi bir sorun oluşturmamıştır. Tabii ki bunu üretim kodunda kullanmayı savunmam, fakat bir .Rmd
-dosyası hata ayıkladığınızda ve yük sırasını kaza ile karıştırmış olsanız, bunu öğrenmenin hızlı bir yoludur.
Bir pakette bu isterseniz:
devtools::install_github("rubenarslan/formr")
Sen kullanabilirsiniz olarak
Dolayısıyla
çalışacaktır: 'dplyr :: select (mpg)' –