如何在R中的'preProcess'函数中创建一个对象?

时间:2016-04-07 23:10:13

标签: r

我想知道如何用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对象。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

有关您可以找到here的功能的更多信息,因为这是一个非常基本的问题。

但就目前而言,有多种解决方案取决于您希望如何调用您的功能。

  1. 定义您的功能
  2. 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)
    
    1. 使用<<-运算符
    2. 将本地prepr变量分配给全局变量

      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)

      但我推荐第一个选项,因为它更清楚地显示了正在发生的事情,如果你想对功能进行更改,只需要在一个地方完成。

相关问题