dplyr以前工作没有问题,最近好像和我加载的其他软件包有冲突。我没有使用plyr或MASS。
plyr
MASS
mtcars%>%select(mpg)
选择(.,mpg)时出错:未使用参数(mpg)为什么会出现此错误?
rur96b6h1#
SparkR也与select冲突(object 'mpg' not found)您不必记住装入包的顺序,还可以使用mtcars %>% dplyr::select(mpg)当你遇到这些冲突的时候。
SparkR
select
object 'mpg' not found
mtcars %>% dplyr::select(mpg)
wnvonmuf2#
我最近在Azure数据块中遇到了一个类似的R脚本问题。为了解决这个问题,我安装了R conflicted包,调用了库,然后运行了我的代码。控制台窗口中随后出现一条消息,指示dplyrmutate函数与sparkR中的函数冲突。要轻松解决这个问题,你可以用conflict_prefer()函数告诉R默认使用哪个包,并将冲突函数名的参数和冲突发生时使用的首选/默认包传递给它。
conflicted
dplyr
mutate
sparkR
conflict_prefer()
步骤1.安装冲突的文件并附加
install.packages("conflicted") library(conflicted)
#步骤2.运行可能与已附加的包冲突的代码
(Note:我使用的是R4.1,它使用了新的管道操作符|〉而不是旧版本中的%〉%:
cars |> mutate(log_dist=log(dist))
在我的例子中,这会在控制台/日志中产生以下输出:
Error: ! [conflicted] `mutate` found in 2 packages. Either pick the one you want with `::` * SparkR::mutate * dplyr::mutate Or declare a preference with `conflict_prefer()` * conflict_prefer("mutate", "SparkR") * conflict_prefer("mutate", "dplyr")
#第3步.修改代码,告诉R在包之间发生函数冲突时使用哪个包
conflict_prefer("mutate", "dplyr") cars |> mutate(log_dist=log(dist))
结果符合预期,无错误/警告:
speed dist log_dist 1 4 2 0.6931472 2 4 10 2.3025851 3 7 4 1.3862944 4 7 22 3.0910425 . . .
当然,你总是可以明确地告诉R使用哪个库:
cars |> dplyr::mutate(log_dist=log(dist))
2条答案
按热度按时间rur96b6h1#
SparkR
也与select
冲突(object 'mpg' not found
)您不必记住装入包的顺序,还可以使用
mtcars %>% dplyr::select(mpg)
当你遇到这些冲突的时候。
wnvonmuf2#
我最近在Azure数据块中遇到了一个类似的R脚本问题。为了解决这个问题,我安装了R
conflicted
包,调用了库,然后运行了我的代码。控制台窗口中随后出现一条消息,指示dplyr
mutate
函数与sparkR
中的函数冲突。要轻松解决这个问题,你可以用conflict_prefer()
函数告诉R默认使用哪个包,并将冲突函数名的参数和冲突发生时使用的首选/默认包传递给它。步骤1.安装冲突的文件并附加
#步骤2.运行可能与已附加的包冲突的代码
(Note:我使用的是R4.1,它使用了新的管道操作符|〉而不是旧版本中的%〉%:
在我的例子中,这会在控制台/日志中产生以下输出:
#第3步.修改代码,告诉R在包之间发生函数冲突时使用哪个包
结果符合预期,无错误/警告:
当然,你总是可以明确地告诉R使用哪个库: