R语言DBSCAN处理iris数据集plot绘图报pch参数错误如何解决
报错原因
你同时加载了fpc和dbscan两个R包,两个包都包含同名的dbscan()函数以及对应的可视化plot方法,存在命名空间冲突。你运行dbscan()生成的是dbscan包的返回对象,但plot时优先调用了fpc包的plot方法,参数不匹配触发了pch参数报错。
修正方案
三个方案任选其一即可:
- 方案1:移除不必要的包加载代码,如果你不需要用到
fpc包的功能,直接删除library(fpc)这行代码即可,冲突自然消失。 - 方案2:明确指定plot方法所属的包,在调用plot时指定用
dbscan包的对应方法,把最后一行绘图代码修改为:
dbscan::plot.dbscan(db, data1, main = 'DBSCAN')
- 方案3:如果你要使用
fpc包的DBSCAN实现,在生成db对象时明确指定调用fpc的函数,把生成db的代码修改为:
db <- fpc::dbscan(data1, eps = 0.45, minPts = 5)
完整可运行示例代码(方案1的完整代码如下:
# 仅加载需要的dbscan包 library(dbscan) data("iris") data1 <- iris[,1:4] set.seed(220) db <- dbscan(data1, eps = 0.45, minPts = 5) table(db$cluster, iris$Species) # 绘图 plot(db, data1, main = 'DBSCAN')
内容的提问来源于stack exchange,提问作者Archana Jalaja Surendran
相关产品推荐
相关产品推荐

