在数据帧上使用DBSCAN导致R错误

时间:2016-04-17 18:11:26

标签: r dataframe cluster-analysis dbscan

数据错误 - x:二元运算符的非数字参数
我的代码如下:

x <- as.factor(c(2, 2, 8, 5, 7, 6, 1, 4))

y <- as.factor(c(10, 5, 4, 8, 5, 4, 2, 9))

coordinates <- data.frame(x, y)

colnames(coordinates) <- c("x_coordinate", "y_coordinate")

print(coordinates)

point_clusters <- dbscan(coordinates, 2, MinPts = 2, scale = FALSE,
    method = c("hybrid", "raw", "dist"), seeds = TRUE, 
    showplot = 1, countmode = NULL)

point_clusters

但是在执行上述代码时我遇到了以下错误:

> point_clusters <- dbscan(coordinates, 2, MinPts = 2, scale = FALSE, method = c("hybrid", "r ..." ... [TRUNCATED] 
Error in data - x : non-numeric argument to binary operator

我不知道上面的代码有什么问题。

1 个答案:

答案 0 :(得分:0)

我根据自己的需要解决了这个问题。我看到某处数据需要数字矩阵,虽然我不确定。所以,这就是我所做的:

x <- c(2, 2, 8, 5, 7, 6, 1, 4)
y <- c(10, 5, 4, 8, 5, 4, 2, 9)
coordinates <- matrix(c(x, y), nrow = 8, byrow = FALSE)

剩余代码与上述相同。现在它适用于我。