在R中绘制函数时出现奇怪错误

在R中绘制函数时出现奇怪错误,r,function,plot,R,Function,Plot,我有以下功能: cost<-function(alpha) { ypred<-lda.pred$posterior[,2] # prob of Y=1 ypred[lda.pred$posterior[,2]>=alpha]=1 ypred[lda.pred$posterior[,2]<alpha]=0 y<-dataframe_testsample[,y] df<-data.frame(y,ypred) row.names(df) &

我有以下功能:

cost<-function(alpha) {
  ypred<-lda.pred$posterior[,2] # prob of Y=1
  ypred[lda.pred$posterior[,2]>=alpha]=1
  ypred[lda.pred$posterior[,2]<alpha]=0
  y<-dataframe_testsample[,y]
  df<-data.frame(y,ypred)
  row.names(df) <- NULL
  FN <- sum(df$y == '1' & df$ypred == '0')
  FP <- sum(df$y == '0' & df$ypred == '1')
  tot_costs<-FN*10+FP*8
  return(tot_costs)
  }
我收到以下错误消息:

Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ
Inoltre: Warning messages:
1: In lda.pred$posterior[, 2] >= alpha :
  longer object length is not a multiple of shorter object length
2: In lda.pred$posterior[, 2] < alpha :
  longer object length is not a multiple of shorter object length
xy.coords(x,y,xlabel,ylabel,log)中的
错误:
“x”和“y”长度不同
INLOTRE:警告消息:
1:在lda.pred$posterior[2]>=α中:
较长的对象长度不是较短对象长度的倍数
2:在lda.pred$posterior[2]

这里发生了什么?

您的函数目前只处理一个alpha值。你可以使用sapply获得你想要的结果


alpha\u grid您拥有的函数,例如lda.pred$posterior[,2]>=alpha,仅适用于1个alpha值。您需要遍历alpha的所有值,例如sappy((alpha_网格,cost)
Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ
Inoltre: Warning messages:
1: In lda.pred$posterior[, 2] >= alpha :
  longer object length is not a multiple of shorter object length
2: In lda.pred$posterior[, 2] < alpha :
  longer object length is not a multiple of shorter object length