2016-01-26 31 views
6

Le librerie con lo stesso nome di funzione in R sembrano essere molto fastidiose. Qual è il modo più semplice per risolvere problemi come il seguente?Pacchetti con lo stesso nome di funzione

Attaching package: ‘dplyr’ 

The following objects are masked from ‘package:stats’: 
filter, lag 
The following objects are masked from ‘package:base’: 
intersect, setdiff, setequal, union 

aggiungendo library(stats) o chiamando la funzione filtro come stats::filter e le altre funzioni come indicato di seguito non ha funzionato per me.

library(ggplot2) 
library(dplyr) 
library(stats) 
stats::filter 
stats::lag 
base::union 
base::setdiff 
base::setequal 
base::intersect 

# Reading in the data 
data <- read.csv("data.csv", header = FALSE) 

# Plots 
dataSummary <- data %>% group_by(id) %>% summarise(data_count = x()) 
dataSummary 
plotTest <- ggplot(dataSummary, aes(id, data_count)) + geom_bar(stat = 'identity') + ggtitle("Test Title") 
plot(plotTest) 

Tuttavia, questo continua a fornire il messaggio di avvertenza precedente prima di eseguire la funzione di stampa. Qualche indicazione? o c'è comunque da sopprimere questi avvertimenti e fare il complotto?

risposta

13
  1. Se proprio non si desidera che le avvertenze di presentarsi, caricare il pacchetto tramite

    library(dplyr, warn.conflicts = FALSE) 
    

    Tuttavia il principale inconveniente è che è appena nasconde il problema, non si ferma l'esecuzione . Se è necessario utilizzare effettivamente una delle funzioni mascherate, è possibile chiamarla come stats::lag (@alistaire).

  2. Non utilizzare pacchetti che mascherano le funzioni di base. L'idea generale se eseguire example("filter") (ad esempio) fornisce una risposta diversa dopo aver caricato un pacchetto è anti-social.

  3. Alcuni pacchetti "migliorano" le funzioni di base, quindi il mascheramento non è un problema.

  4. L'ordine di caricamento dei pacchi è importante. Il primo pacchetto caricato è il prima nel percorso di ricerca se si utilizza una funzione che è stata mascherata . Vedi this answer per alcuni approfondimenti.


Questa risposta ha tentato di riassumere i numerosi commenti che (eventualmente) cancellati.

Problemi correlati