相关疑难解决方法(0)

如果在使用data.table dplyr时在函数内定义,则找不到R对象

注意所描述的行为已在dplyr的开发版本中得到修复.你可以使用devtools :: install_github("hadley/dplyr")安装dplyr

请看这个最小的例子; 我使用的是dplyr v0.3.0.2和data.table v1.9.4

library(dplyr)
library(data.table)
f <- function(x, y, bad) { 
  z <- data.table(x,y, key = "x")    
  z2 <- z %>% group_by(x) %>% summarise(sum.bad = sum(y == bad))
  z2
}

f(rnorm(100), rnorm(100) < 0, bad = FALSE) 
Run Code Online (Sandbox Code Playgroud)

当我跑上面的时候,我得到了

Error in `[.data.table`(dt, , list(sum.bad = sum(y == bad)), by = vars) : 
  object 'bad' not found
Run Code Online (Sandbox Code Playgroud)

然而,坏的是明确定义和范围.

如果我只是在函数之外运行它可以工作

  x <- rnorm(100)
  y <- rnorm(100) <0
  bad <- FALSE
  z <- data.table(x,y, key = "x")

  z2 <- …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table

6
推荐指数
1
解决办法
6386
查看次数

标签 统计

data.table ×1

dplyr ×1

r ×1