【问题标题】:Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘select’ for signature ‘"spec_tbl_df"’(函数(类,fdef,mtable)中的错误:无法找到签名“spec_tbl_df”的函数“select”的继承方法
【发布时间】:2020-04-25 15:36:10
【问题描述】:

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

奇怪的是,我正在使用的这段代码今天早些时候运行良好。但是,由于我为 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的新版本是什么? version 命令可以运行
  • 您好 linog,我现在正在运行 4.0.0 版。我更新了它,因为 R markdown 没有运行。现在 Rmarkdown 可以工作,但我的代码不行。
  • 好的,这可以来自R 4.0.0 更新。或者它可能来自that。你试过写dplyr::select而不是select吗?
  • 成功了!非常感谢!
  • 如果你提交一个答案我会接受它 linog

标签: r csv dbf


【解决方案1】:

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

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

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

更新

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

【讨论】:

    【解决方案2】:

    在我的情况下,我忘记添加 dbDriver("PostgreSQL")。这可能会有所帮助)

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

    【讨论】:

      猜你喜欢
      • 2019-09-19
      • 2021-07-02
      • 2017-09-02
      • 2018-11-28
      • 1970-01-01
      • 2021-12-24
      • 2019-09-30
      • 2015-11-16
      • 1970-01-01
      相关资源
      最近更新 更多