R中的陷波误差

R中的陷波误差,r,try-catch,R,Try Catch,一个非常基本的问题。但我无法将此应用于我的代码。因此在这里寻求帮助 我在运行此R代码时遇到下面提到的错误 knn.pred <- knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE) > Error in knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE) : > dims

一个非常基本的问题。但我无法将此应用于我的代码。因此在这里寻求帮助

我在运行此R代码时遇到下面提到的错误

knn.pred <- knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE)

>     Error in knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE) : 
>       dims of 'test' and 'train' differ.
knn中的knn.pred错误(tdm.stack.nl_序列,tdm.stack.nl_测试,tdm.cand_序列,prob=TRUE): >“测试”和“列车”的亮度不同。 我想打印下面给出的错误消息。然而,我无法做到这一点。我还不擅长写函数。。请帮忙

   out <- tryCatch( when error = {print('New words seen in testing data')})
out您可以执行以下操作:

tryCatch(knn.pred <- knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE),
         error = function(e) {
           stop('New words seen in testing data')
         })

tryCatch(knn.pred使用起来更好更容易尝试:

knn.pred <- try(knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE))

if (inherits(knn.pred, "try-error") { # error management
  print('New words seen in testing data')
}

knn.pred非常感谢。这已经奏效了。顺便问一下,你能解释一下这个函数(e)在这里的意思吗?再次感谢。@Arun不客气,很高兴我能帮上忙。
函数(e)
位被称为。参数error需要一个函数,该函数将在
tryCatch
中发生错误时调用。因为我们希望它停止并打印特定错误,所以我们使用一个匿名函数来完成。匿名函数实际上是一个普通函数,唯一的例外是它没有名称(因此是匿名的)。而
函数(e)
中的
e
是任意的。本质上它可以是你喜欢的任何东西。如果你喜欢,你可以使用
函数(无论什么)
。人们通常使用
e
,因为它是
错误的第一个字母。非常感谢你的解释。
knn.pred <- try(knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE))

if (inherits(knn.pred, "try-error") { # error management
  print('New words seen in testing data')
}