2014-11-14 19 views
8

İşyerinde, R 3.1.2 çalıştıran bir Windows 7 bilgisayarım var.R dplyr filtresi maskeleme temel filtresi değil mi?

Ben packages.R adlı bir dosya var.

library(dplyr) 
library(sqlutils) 
library(RODBC) 

Benim .Rprofile .İlk adlı bir işlev içerir: Benim Bu dosyada, aşağıdaki kodu var. Dikkatle bakarsak

Loading required package: roxygen2 
Loading required package: stringr 
Loading required package: DBI 

Attaching package: 'dplyr' 

The following objects are masked from 'package:base': 

    intersect, setdiff, setequal, union 

, sen hariç tutulmayan istatistiklerimden filtreyi göreceksiniz: Ben R yüklediğinizde

.First <- function() { 
    source("R/packages.R") 
} 

, aşağıdaki çıktıyı almak.

Ama, benim tam aynı kurulum almak ve packages.R kütüphane (dplyr) deyiminde açýklama eğer dosyayı kaydedin ve manüel ardından R yeniden başlatın ve. . . . tipinde olduğu gibi el ile. . . .

library(dplyr) 

Attaching package: 'dplyr' 

The following object is masked from 'package:stats': 

    filter 

The following objects are masked from 'package:base': 

    intersect, setdiff, setequal, union 

Şimdi, bu paket :: maskeleri maskeler.

Anlamadım. Bu proje için dplyr çok filtre komutunu kullanmam gerekiyor ve kullanmak için dplyr :: filter yazmak istemiyorum. Birisi lütfen zayıf zihnime bunun neden böyle davrandığını anlamasına yardımcı olabilir mi? RStudio ve ESS'de R'yi başlatmayı denedim ve her ikisinde de aynı davranışı elde ediyorum. Ayrıca, sonuçlara bir fark olmaksızın, package.R dosyasının sonuna dplyr dosyasını eklemeyi denedim. Sadece istatistiklerini filtrelemek istiyorum: filtre. Teşekkürler.

+1

Eğer .RProfile içinde kütüphaneleri istatistikleri paket bağlanmadan önce onlar, çok erken R başlatma işleminde bağlı olsun yükleyin. Diğer bir şekilde, istatistikler zaten yüklendikten sonra dplyr ekliyorsunuz. Hadley, bu nedenle (paket yükleme sırasındaki uyuşmazlıklar) .RProfile'da yükleme paketlerine karşı tavsiye ettim. – joran

+2

... Sanırım kaynak oluşturduğunuz komut dosyasının başlangıcında .RProfile 'library (stats)' ı eklemeyi deneyebilirsiniz. – joran

+0

Sırıtan ve kıkırdaklar için, paketlerim.R dosyasına kütüphane (istatistik) ekledim. Ancak, bu yapılması gereken gereksiz karmaşık bir şey gibi görünüyor. Sanırım bu iki komutu benim .First() 'i çekip tüm analitik dosyalarının önüne taşıyacağım. Tekrar tekrar tekrar aynı şeylerle dolu şablonlara sahip olmaktan nefret ediyorum, ama sanırım bu örnekte daha iyi bir seçenek. – Choens

cevap

10

.RProfile numaralı kitaplıklara kitaplıklar yüklediğinizde, istatistikleri paketinin eklenmesinden önce R başlatma işlemine çok erken eklenirler. Diğer yol, zaten yüklenmişsonra istatistikler dplyr takılarak ediyoruz. Şahsen bu konuda güçlü hislerim olmasa da, bu nedenle .RProfile numaralı paketler için yükleme paketine karşı (paket yükleme sırasındaki uyuşmazlıklar) tavsiye ettim. (R'ın başlatma işleminin ayrıntıları ?Startup açıklanmıştır.)

Olası bir çözüm basitçe dplyr yüklemeden önce, komut dosyanızda ilk kütüphane çağrısı olarak library(stats) eklemektir.

Başka (uzun süreli) seçeneği

bir veya birden fazla paketlere "komut geniş bir koleksiyon" adresinin iş akışlarını geçiş olacağını daha küresel olarak bu tür soruları önlemek için.

0

tam olarak aynı sorunu vardı ve çok can sıkıcı. Uyarı mesajlarını yaptığım gibi bastırmak isterseniz, library(dplyr, warn.conflicts = FALSE) ile yükleyebilirsiniz.