【问题标题】:`dplyr` not working with `MASS` package in `r` [duplicate]`dplyr`不适用于`r`中的`MASS`包[重复]
【发布时间】:2017-03-27 16:29:48
【问题描述】:

我在使用RRStudio 一起使用包MASSdplyr 时遇到了一个奇怪的问题。以下代码

library(dplyr)
select(iris, starts_with("Petal"))

工作并给我正确的输出。但是如果我尝试加载MASS 包并使用相同的代码

library(MASS)
library(dplyr)
select(iris, starts_with("Petal"))

我收到一个错误

select(iris, starts_with("Petal"))
Error in select(iris, starts_with("Petal")) : 
  unused argument (starts_with("Petal"))

RStudio 中使用dplyrMASS 是否存在已知问题。我在MASS 之后加载dplyr,以免从dplyr 中屏蔽select。我也卸载并重新安装了我的RStudio,但错误仍然存​​在。

我正在使用 R 版本 3.2.2MASS 版本 - 7.3-45dplyr 版本 0.5.0

任何帮助将不胜感激!

sn248

【问题讨论】:

  • 为了将来参考,RStudio != R。RStudio 只是一个 IDE,它不会真正影响你的 R 代码正在发生的事情。所以这里不需要重新安装 RStudio(和 RStudio 标签)。
  • 谢谢,当我输入这个问题时 - Stackoverflow 中弹出了一个类似的问题,建议取消/重新安装 IDE。所以,我试了一下,提到我已经尝试过这一步。
  • 在给你错误的块中......你不应该在 MASS 之前加载 dplyr 来得到那个错误吗?
  • 这是我的问题,即使我在MASS 之后加载dplyr,但我得到了一个错误,不知道为什么。

标签: r dplyr


【解决方案1】:

两个包都有一个select 函数。

根据需要使用dplyr::select()MASS::select() 以防止出现错误。

另一个流行的冲突是dplyr::filtersignal::filter

如果您不想每次都输入包名,可以输入一次dselect <- dplyr::select,然后一直使用dselect

【讨论】:

  • 今天的“tidyverse 被认为是有害的”一集,因为它超越了基础 R 和推荐的软件包。
  • 谢谢,不知何故 select 现在可以工作了,但是您的解决方案很有帮助,应该每次都可以工作
  • 如果我创建了一个通用包(例如 dplyr)并且我知道信号和 MASS,我会避免冲突,选择类似 filter_rowsfilter_columns 而不是 filterselect。但我不会说每天都会有“tidyverse 被认为有害”的情节,因为这个...... tidyverse 并不完美,但从我谦虚的角度来看,它的好处超过了缺点......
  • @SN248 我认为它现在“有效”了,因为您发布的代码以错误的顺序调用了库,现在您正在按照您在此处发布的顺序运行代码。
猜你喜欢
  • 2020-02-13
  • 1970-01-01
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
相关资源
最近更新 更多