【发布时间】:2017-03-02 09:50:37
【问题描述】:
我正在尝试创建一个我自己的函数来对 R 中的 data.cube 进行子集化,并为我打算构建的一些预定义图自动格式化结果。
这是我的功能。
require(data.table)
require(data.cube)
secciona <- function(cubo = NULL,
fecha_valor = list(),
loc_valor = list(),
prod_valor = list(),
drop = FALSE){
cubo[fecha_valor, loc_valor, prod_valor, drop = drop]
## The line above will really be an asignment of type y <- format(cubo[...drop])
## Rest of code which will end up plotting the subset of the function
}
问题是我不断收到错误:Error in eval(expr, envir, enclos) : object 'fecha_valor' not found
对我来说最奇怪的是,在控制台上一切正常,但在我的子集函数中定义时却不行。
在控制台中:
> dc[list(as.Date("2013/01/01"))]
> dc[list(as.Date("2013/01/01")),]
> dc[list(as.Date("2013/01/01")),,]
> dc[list(as.Date("2013/01/01")),list(),list()]
全部给出结果:
<data.cube>
fact:
5627 rows x 2 dimensions x 1 measures (0.32 MB)
dimensions:
localizacion : 4 entities x 3 levels (0.01 MB)
producto : 153994 entities x 3 levels (21.29 MB)
total size: 21.61 MB
但每当我尝试时
secciona(dc)
secciona(dc, fecha_valor = list(as.Date("2013/01/01")))
secciona(dc, fecha_valor = list())
我总是收到上面提到的错误。
任何想法为什么会发生这种情况?我应该以其他方式进行编辑子集以进行绘图的方法吗?
【问题讨论】:
标签: r function data.table subset data.cube