R 撞击长度为';dimnames';[2] 不等于数组范围

R 撞击长度为';dimnames';[2] 不等于数组范围,r,sampling,R,Sampling,我试图使用SMOTE对数据集进行超级采样,但我一直遇到这个错误 trainSM <- SMOTE(conversion ~ ., train,perc.over = 1000,perc.under = 200) 我试着只使用数值预测,甚至分类预测。但两者都不走运 非常感谢您提供的任何帮助/指导。将TIBLE的data.frame传递到DMwR::SMOTE()将抛出此错误。您可以使用as.data.frame(您的\u train\u数据)来“取消”您的数据。frame: tra

我试图使用SMOTE对数据集进行超级采样,但我一直遇到这个错误

trainSM <- SMOTE(conversion ~ ., train,perc.over = 1000,perc.under = 200)
我试着只使用数值预测,甚至分类预测。但两者都不走运


非常感谢您提供的任何帮助/指导。

将TIBLE的data.frame传递到
DMwR::SMOTE()
将抛出此错误。您可以使用
as.data.frame(您的\u train\u数据)
来“取消”您的数据。frame:

    trainSM <- SMOTE(conversion ~ ., as.data.frame(train), perc.over = 1000, perc.under = 200)
    trainSM <- SMOTE(conversion ~ ., as.data.frame(train), perc.over = 1000, perc.under = 200)
# The idea here is to determine which level of the response variable appears least.
# Unfortunately, if data is a tibble, then data[,tgt] returns a data frame, 
# which of course, doesn't have any levels, so the value of minCL is always NULL
minCl <- levels(data[, tgt])[which.min(table(data[, tgt]))]

# this is where the error is thrown--you're testing a data frame against NULL
minExs <- which(data[, tgt] == minCl)