R studio中未使用的参数错误

时间:2016-04-19 08:33:02

标签: r variadic-functions

当我尝试运行这行代码时出错:

nnetPred.model <- nnetPred(X, Y, step_size = 0.4,reg = 0.0002, h=50, niteration = 6000)

错误消息是:

Error in nnetPred(X, Y, step_size = 0.4, reg = 2e-04, h = 50, niteration = 6000) : 
unused arguments (step_size = 0.4, reg = 2e-04, h = 50, niteration = 6000)

我的代码如下:

nnetPred <- function(X, Y, para = list()){
  W <- para[[1]]
  b <- para[[2]]
  W2 <- para[[3]]
  b2 <- para[[4]]

  N <- nrow(X)
  hidden_layer <- pmax(0, X%*% W + matrix(rep(b,N), nrow = N, byrow = T)) 
  hidden_layer <- matrix(hidden_layer, nrow = N)
  scores <- hidden_layer%*%W2 + matrix(rep(b2,N), nrow = N, byrow = T) 
  predicted_class <- apply(scores, 1, which.max)

  return(predicted_class)  
}

nnetPred.model <- nnetPred(X, Y, step_size = 0.4,reg = 0.0002, h=50, niteration = 6000)

2 个答案:

答案 0 :(得分:1)

看起来你正在尝试使用变量参数。在R中,这意味着省略号(...)。这就是如何定义nnetPred的顶部以使用变量参数:

nnetPred <- function(X, Y, ...) {
  para <- list(...)

这将适用于您的情况,但实际上并不是定义该函数的最佳方法,因为它看起来像您有一定数量的参数。只有当您具有未知数量的参数时,才应使用可变参数列表。我建议您只需将参数放在参数列表中。如果您愿意,可以重命名它们:

nnetPred <- function(X, Y, step_size, reg, h, niteration) {
  W <- step_size
  b <- reg
  W2 <- h
  b2 <- niteration

答案 1 :(得分:0)

yy