【发布时间】:2017-03-03 12:03:53
【问题描述】:
我一直收到这个错误:
Error in eval(expr, envir, enclos) :
could not find function "aggregation.method"
例子:
#sample data
Date.Time<- seq(ISOdate(2000,1,1), by = "min" , length.out = 200)
rh <- as.data.table(cbind(Date.Time,rnorm(200),rnorm(200),rnorm(200)))
colnames(rh) <- c("Date.Time", "A", "B", "C")
rh$Date.time <- as.POSIXct( rh$Date.Time, origin = "1970-01-01" )
#Custom function
Custom.data.wrangle<-function(x, timeinterval, aggregation.method)
{
require(data.table)
x$Date.Time <- as.POSIXct(as.integer(as.numeric(x$Date.Time) / (60 * timeinterval)) * (60 * timeinterval),
origin = "1970-01-01" ,
tz = "GMT")# Rounddown POSIXct in a simple form.
x<-melt(x, id= "Date.Time")
x<-dcast(x, Date.Time~variable, fun.aggregate = aggregation.method, na.rm=TRUE) #Restructure the table
return(x)
}
rh<- Custom.data.wrangle(rh, 30, mean)
我尝试了引号、noquote 的组合,
fun.aggregate = get(aggregation.method)
一切都无济于事。请拯救我的理智!
【问题讨论】:
-
dcast和melt不是基本 R 函数。请在问题文本中包含您正在使用的任何软件包的名称。 -
您构建 data.table 的方式非常不理想。小插曲清楚地展示了如何以更好的方式做到这一点。无论如何,您应该将此报告给 data.table 错误跟踪器。这显然是
dcast.data.table的范围界定问题。 -
你好罗兰。 data.table 仅用于可重现的示例。我时间紧迫,从来没有像这样从头开始创建它们,所以我不关心简洁的代码。感谢您对错误跟踪器的建议。
标签: r data.table