2016-01-26 20 views
6

Rの中で同じ関数名を持つライブラリは非常に面倒です。次のような問題を解決する最も簡単な方法は何ですか?同じ関数名を持つパッケージ

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 

library(stats)を追加するか、私のためにうまくいかなかった以下のようになりstats::filterおよびその他の機能として、フィルタ機能を呼び出します。

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) 

ただし、プロット機能を実行する前に前の警告メッセージが表示され続けます。すべてのポインタ?またはこれらの警告を抑制してプロットを行うためにとにかくありますか?

答えて

13
  1. あなただけの主要な欠点は、それだけで問題を隠していることであるしかし

    library(dplyr, warn.conflicts = FALSE) 
    

    経由でパッケージをロードし、警告が表示したくない場合は、それが実行を停止しません。 。マスクされた関数の1つを実際に使用する必要がある場合は、stats::lag(@alistaire)のように呼び出すことができます。

  2. 基本機能をマスクするパッケージは使用しないでください。 example("filter")(例えば)を実行している場合の一般的な考え方は、パッケージをロードした後で異なる答えを与えるのはanti-socialです。

  3. パッケージによっては、基本機能を「改善」するため、マスキングは問題になりません。

  4. パッケージをロードする順序が重要です。 のマスクされた関数を使用している場合、最初にロードされたパッケージは、最初に検索パスにある です。いくつかの洞察については、this answerを参照してください。


この回答は(最終的に)削除されます多くのコメントを要約しようとしました。

関連する問題