我需要加载到R包:tseries和chron
两者都有一个名为is.weekend
的函数我的环境中总是有我加载的第二个包中的函数。
如何从chron?
中随时访问该函数答案 0 :(得分:75)
您可能已经注意到加载包的顺序有所不同,即最后加载的包将掩盖先前加载的包中的函数。
要指定要使用的包,语法为:
chron::is.weekend()
tseries::is.weekend()
换句话说,请使用packagename::functionname()
此外,如果你知道你总是想在chron中使用这个函数,你可以按如下方式定义自己的函数:
is.weekend <- chron::is.weekend #EDIT
答案 1 :(得分:3)
library(chron)
is.weekend.chron <- is.weekend
library(tseries)
然后你可以为tseries版本调用is.weekend,或者为chron版本调用is.weekend.chron
答案 2 :(得分:1)
您应该转到Hadly的conflicted
软件包。
library(conflicted)
library(dplyr)
filter(mtcars, am & cyl == 8)
然后,有冲突的程序包将引发错误,并迫使您清楚地确定要使用的功能:
错误:在2个程序包中找到了过滤器。您必须使用::指示要使用哪一个 * dplyr ::过滤器 * stats :: filter
要解决整个会话的冲突,请使用<-
:
filter <- dplyr::filter
filter(mtcars, am & cyl == 8)
mpg cyl disp hp drat wt qsec vs am gear carb
1 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
2 15.0 8 301 335 3.54 3.57 14.6 0 1 5 8
您还可以转到conflict_prefer()
函数,该函数可以在发生冲突时确定赢家。
该代码示例是从Hadly借来的,请参考该软件包的网站。
https://www.tidyverse.org/blog/2018/06/conflicted/
答案 3 :(得分:0)
我有2个软件包,它们的函数名称均为ts() 相同的2个包装是:
?ts
Help on topic 'ts' was found in the following packages:
Time-Series Objects
(in package stats in library C:/Program Files/R/R-3.6.2/library)
Format time stamps
(in package bReeze in library C:/Users/mycomputer/Documents/R/win-library/3.6)
解决方案:然后使用包预测附带的功能ts 我曾经用过:因为帮助显示出forcast正在调用统计信息
时间序列对象(在软件包统计信息中
stats::ts
因为从帮助中可以看到预测使用了称为stats的程序包;)
forecast::ts
Time-Series Objects
(in package stats
给我错误,因为预报包使用的是子包;
所以最终用法如下:
library(bReeze)
library(forecast)
# Subset data
my_time_series <- stats::ts(c(df_sub$y), start=2018, frequency = 12)
# Plot
theme_set(theme_classic())
ggseasonplot(my_time_series) + labs(title="My graph title")