【问题标题】:loading dplyr after plyr is causing issues在 plyr 后加载 dplyr 导致问题
【发布时间】:2015-07-27 03:55:38
【问题描述】:

测试用例:

library(dplyr)
library(plyr)
library(dplyr)
mtcars%>%rename(x=gear)

这会产生错误。 任何帮助将不胜感激。

【问题讨论】:

  • 同上,或者重启R会话,然后先加载dplyr。考虑使用 ddplyer 或其他更好地协同工作的新版本
  • 您还可以通过在函数调用中包含包名来访问特定包。例如,即使你在dplyr之后加载plyr,你也可以通过mtcars %>% dplyr::rename(x=gear)来使用dplyrrename函数。但是,通常最好在dplyr 之前加载plyr(假设您想使用两个包中的函数),因为dplyr 更快。或者,您可以只加载dplyr,然后使用plyr::rename,如果您想要一个被dplyr 屏蔽的特定plyr 函数。
  • 感谢 cmets。问题是这是一个包含多个开发人员的大型代码库的一部分。所以分离可能不切实际。
  • @nongkrong 使用detach() 从来都不是一个好主意
  • @nongkrong 我不这样做 ;)

标签: r dplyr plyr


【解决方案1】:

基于@hadley 的推文。最佳答案是始终在 dplyr 之前加载 plyr,而不是再次加载 plyr。粘贴他的推文以供参考。


Hadley Wickham ‏@hadleywickham  Jul 27
@gunapemmaraju just load plyr before dplyr?

【讨论】:

  • 我想你的意思是and not load dplyr again
【解决方案2】:

当需要 plyr 再次采购文件时,我遇到了这个问题。 你可以这样做

if("dplyr" %in% (.packages())){
          detach("package:dplyr", unload=TRUE) 
          detach("package:plyr", unload=TRUE) 
} 
library(plyr)
library(dplyr)

【讨论】:

  • 哇,我尝试以不同的顺序手动卸载和重新加载,但它不起作用,但这段代码解决了我的问题!谢谢!
猜你喜欢
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 2021-10-22
  • 1970-01-01
  • 2021-11-21
相关资源
最近更新 更多