(function (类, fdef, mtable) 中的错误:无法为签名“"spec_tbl_df"”的函数“select”找到继承方法

Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘select’ for signature ‘"spec_tbl_df"’

我的项目中出现了这个错误代码。

奇怪的是,我正在使用的这段代码在今天早些时候运行良好。但是,由于我安装了 R 的更新,我现在在 运行 时收到此消息。

df1 <- df %>% select(Month, Longitude, Latitude, Type)

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘select’ for signature ‘"spec_tbl_df"’

该代码仅用于创建仅包含选定列的新数据框。

如有任何帮助,我们将不胜感激!

最近发布了 R 的新版本:4.0.0

发生了一些重大变化,see here for a list。文档说这可能破坏了一些基于 R 3.6.* 行为的方法。也许 class spec_tbl_df 的方法依赖于发生了变化的东西。

这是一个线索,而不是一个明确的答案,也许有些用户会给你一个更好的答案

更新

鉴于 问题 here,看起来基本 R select 方法和 dplyr::select class spec_tbl_df 对象的方法。在这种情况下,最简单的解决方案是确保使用 dplyr::select 语法使用 dplyr 命名空间。

我忘记在我的案例中添加 dbDriver("PostgreSQL")。这可能会有所帮助 )

db_con = dbConnect(
    **dbDriver("PostgreSQL")**, 
    user='****',
    password='****',
    dbname='****',
    host='****',
    port='****'
  )