你有时可能会在R中遇到以下信息:
The following objects are masked from 'package:stats':
filter, lag
当你在R中加载一些包,而这些包中的函数与你当前环境中已经从其他包中加载的函数共享名称时,就会出现这个信息。
例如,假设我在R中加载dplyr包:
library(dplyr)
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
从输出中我们可以观察到:
1.称为filter和lag的函数被掩盖在R统计包中
- 如果我们在R代码中使用filter()或lag(),将使用dplyr的filter()和lag()函数,因为它是最近加载的包含这些函数的包
2.2. 被称为intersect、setdiff、setequal和union 的函数被掩盖在R基础包中
- 如果我们在R代码中使用intersect(), setdiff(), setequal(), 或者union(), 这些来自dplyr的函数将被使用,因为它是最近加载的包含这些函数的包
如何使用屏蔽的函数
假设你想使用基础R包中的intersect()函数,但它目前被屏蔽了,因为在我们最近加载的dplyr包中存在一个intersect()函数。
要明确地使用基础R包中的intersect()函数,你可以使用以下带有双冒号的句法:
base::intersect(x, y)
在实践中,你很可能会在你的R环境中同时加载几个包。
为了确保你使用的是某个想要的包中的函数,你可以随时在函数名称前面输入带双冒号的包名称。
其他资源
下面的教程解释了如何在R中执行其他常见的操作: