我需要一个类似于length()
的命令来查找在dbscan中创建的集群数。
假设我在此数据集上执行了dbscan
set.seed(665544)
n <- 600
x <- cbind(runif(10, 0, 10)+rnorm(n, sd=0.2), runif(10, 0, 10)+rnorm(n,sd=0.2))
ds<- dbscan(x,.2,showplot=1)
我可以使用ds命令查看簇数
ds
是否有可以键入的命令,并返回簇数的值?即我输入一个命令并返回值12.
答案 0 :(得分:2)
如果查看对象ds
的结构,您将看到每个观察点都有包含簇号的变量cluster
。变量0
中的cluster
用于编码噪声观察(请参阅dbscan()
的帮助文件)。
str(ds)
List of 4
$ cluster: num [1:600] 1 2 3 4 5 10 6 7 8 9 ...
$ eps : num 0.2
$ MinPts : num 5
$ isseed : logi [1:600] TRUE TRUE TRUE TRUE TRUE FALSE ...
- attr(*, "class")= chr "dbscan"
要查找群集的数量,您可以查看该变量的最大值。结果是11.
max(ds$cluster)
[1] 11
答案 1 :(得分:0)
您可以使用命令
length(table(ds$cluster))-1
-1将删除0簇