【发布时间】:2017-07-27 21:01:40
【问题描述】:
loess.smooth <- function(dat) {
dat <- dat[complete.cases(dat),]
## response
vars <- colnames(dat)
## covariate
id <- 1:nrow(dat)
## define a loess filter function (fitting loess regression line)
loess.filter <- function (x, span) loess(formula = paste(x, "id", sep = "~"),
data = dat,
degree = 1,
span = span)$fitted
## apply filter column-by-column
new.dat <- as.data.frame(lapply(vars, loess.filter, span = 0.75),
col.names = colnames(dat))
}
当我尝试将 loess.smooth 应用于数据框时,我收到错误消息:
Error in model.frame.default(formula = paste(x, "id", sep = "~"), data = dat) :
invalid type (closure) for variable 'id'
我不明白为什么这是一个问题,因为 id 不是一个函数,这是错误所暗示的。
当我在函数之外运行这些代码行时,它工作得非常好,并且完全符合我的要求。
【问题讨论】: