我想知道如何用preProcess函数创建一个对象(来自'caret'包)。
以下代码没有创建任何对象,我不明白为什么:
function(dt1, dt2, norm = "spatialSign"){
X<-dt1[ ,-ncol(dt1)]
Y<-dt1[ ,ncol(dt1)]
t<-holdout(Y, ratio = 8/10, mode = "random")
prepr<-preProcess(X[t$tr, ], method = norm)}
我想在函数调用结束时获取一个prepr对象。
你能帮助我吗?
答案 0 :(得分:0)
有关您可以找到here的功能的更多信息,因为这是一个非常基本的问题。
但就目前而言,有多种解决方案取决于您希望如何调用您的功能。
my_func <- function(dt1, dt2, norm = "spatialSign"){
X <- dt1[ , -ncol(dt1)]
Y <- dt1[ , ncol(dt1)]
t <- holdOut(Y, ratio = 8/10, mode = "random")
prepr <- preProcess(X[t$tr, ], method = norm)
}
然后调用您的函数并将其存储在对象
中my_outcome <- my_func(dt1, dt1)
<<-
运算符 my_func <- function(dt1, dt2, norm = "spatialSign"){
X <- dt1[ , -ncol(dt1)]
Y <- dt1[ , ncol(dt1)]
t <- holdOut(Y, ratio = 8/10, mode = "random")
prepr <<- preProcess(X[t$tr, ], method = norm)
}
然后在代码中使用该函数。
my_func(dt1, dt2)
但我推荐第一个选项,因为它更清楚地显示了正在发生的事情,如果你想对功能进行更改,只需要在一个地方完成。