rbind出错,找不到对象

时间:2017-05-01 16:21:04

标签: r rbind

编辑:如下所示,我可以提供一个示例,但我假设的问题不在代码中,而是与环境相关的问题,因为当我将代码加载到GlobalEnvironment中时代码运行得非常好,但它给出了从我的包中加载它时出现此错误。 这么说,在这里加载2个数据帧根本不会有帮助。

我有一个简单的函数,它导入csv,过滤几个变量,并将它与已存在于全局环境中的data.frame合并。

#' Imports file and merges
#' @export
#'

funcTest <- function(x = NULL, m, Q){

    # Imports file
    df1 <- fread(x, header = TRUE, sep = ",", stringsAsFactors = TRUE,
                           integer64 = "numeric")

    # Create Filter
    df1 <- df1 %>%
      select(ORIGIN, DEST, ORIGIN_CITY_MARKET_ID, DEST_CITY_MARKET_ID,
             PASSENGERS, QUARTER) %>%
      filter(PASSENGERS > 0, QUARTER == Q) %>%
      select(ORIGIN, DEST, ORIGIN_CITY_MARKET_ID, DEST_CITY_MARKET_ID, PASSENGERS)


  # Merges df1 with df2
  df2 <- df2 %>%
    select(ORIGIN, DEST, ORIGIN_CITY_MARKET_ID, DEST_CITY_MARKET_ID, PASSENGERS)

dfbind <- rbind(df2,df1)

  dfbind <<- dfbind

}

注意:m是已存在的data.frame,Q是用于过滤的变量。

但是我遇到错误,说df1不存在。 如果我从.GlobalEnv运行该函数,一切都运行良好。如果它在我的包裹上,我就明白了。发生这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

似乎答案很简单,并且与代码本身无关。阅读上面的一些评论后,我意识到data.table和dplyr软件包都没有正确加载到命名空间中。 这带来了我之前看到的错误。

这是一个比我想象的更常见的错误,但通常会发生从未达到解决方案的情况。因此,对于那些有相同问题的人,我强烈建议在查看您正在使用的功能之前检查NAMESPACE文件。