为什么我使用naiveBayes函数会得到未定义的列?

时间:2019-05-11 21:10:40

标签: r error-handling naivebayes

我试图在R中运行naiveBayes函数,并因“未定义的选定列”而不断出现错误,并且无法弄清原因。

文件:http://www.mediafire.com/file/1dgqluc1f8gbngc/Train.Example.csv

FA.train <- read.csv("Train.Example.csv")

FA.train$Fatalities <- as.factor(FA.train$Fatalities)
fatalities_nb <- naiveBayes(Fatalities~., data = FA.train)
fatalities_nb

据我所知,我正在选择所有列,但这表示它们是未定义的。

1 个答案:

答案 0 :(得分:2)

我相信您会与数据集中的现有列名发生冲突。示例:其中一些不是“适当的” R名称。当您清理然后使用正确的R名称时,一切似乎都很好。我尝试了以下方法,效果很好:

library(tidyverse)
library(e1071)
dat <- read_csv("data/Train.Example.csv") %>% 
    janitor::clean_names()

dat$Fatalities <- as.factor(dat$fatalities)
fatalities_nb <- naiveBayes(Fatalities~., data = dat)

得到了:

> summary(fatalities_nb)
          Length Class  Mode     
apriori    2     table  numeric  
tables    18     -none- list     
levels     2     -none- character
isnumeric 18     -none- logical  
call       4     -none- call