1、R语言错误Error in data.type(x) : variable A is not supported in bnlearn (type: integer).
> bn1 <- tabu(data, blacklist = banlist)
Error in data.type(x) :
variable Age is not supported in bnlearn (type: integer).
解决办法:
只需要加上下面一段代码,将字符型数据转为数字型数据:
# mydata是需要转变的数据
t <- data.frame(matrix(as.numeric(unlist(mydata)),ncol = length(mydata[1,])))
rownames(t) <- rownames(mydata)
colnames(t) <- colnames(mydata)
mydata <- t
2、plot不显示图片
g1 <- graphviz.plot(bn1, highlight = highlight1, shape="rectangle")
可能不是它没显示 而是你没注意到它出现了 注意Rstudio的右下角 记得切换成Plot来看图
解决办法:
如果还是没有出现图 可以在plot代码上面加上一句 运行这句后记得再运行plot才能显示图片
dev.new()
3、Error in check.fitting.method(method, data) : parameter estimator 'bayes' may only be used with discrete data.
> fit1 <- bn.fit(bn1, data1, method="bayes")
Error in check.fitting.method(method, data) :
parameter estimator 'bayes' may only be used with discrete data.
解决办法:
使用bnlearn包数据必须是离散数据 加载数据后记得用 discretize 离散数据
4、Rstudio导入/导出数据
导入:File->import dataset
导出:csv格式
write.csv(discrete.data,"D:/Project/mydata.csv", row.names = FALSE)
参考:
bnlearn - Bayesian network structure learning