Svm缺少R中需要TRUE / FALSE的值

我正在尝试实现二进制svm.我有以下错误消息:

Error in if (any(co)) { : missing value where TRUE/FALSE needed

对于以下代码:

library(e1071)
dataset <- read.csv("C:/Users/Backup/Desktop/pos.csv")
# Subset the dataset dataset to only 2 labels and 2 features
dataset.part = subset(dataset, label != 1)
dataset.part$label = factor(dataset.part$label)


# Fit svm model
fit = svm(label ~ ., data=dataset.part, type='C-classification',   kernel='linear')

我收到这行代码的错误:

# Fit svm model
fit = svm(label ~ ., data=dataset.part, type='C-classification', kernel='linear')

我是R的初学者,我不知道如何解决这个问题.任何人都可以帮助我吗?

最佳答案 我遇到了同样的问题,并且能够将其缩小到我的一行中的无限值.我的建议是先对数据进行预处理.在我的情况下,我可以承受省略na和无限值

# First cast Inf to NA
is.na(df) <- sapply(df, is.infinite)
# Now just omit NA
na.omit(df)

然而,对于一般问题解决@FrFlick的解决方案是一个很好的解决方案.如果所有其他方法都失败了,最简单的方法就是对数据集进行二进制搜索,以查看哪些数据点导致了问题

点赞