데이터를 제공하지 않았으므로 kmeans
설명서의 예제를 사용 했으므로 두 열 x 및 y가있는 데이터에 대해 두 그룹이 생성됩니다. 각 행이 속한 클러스터에 의해 원본 데이터를 split
으로 가져온 다음 각 그룹에서 데이터를 추출 할 수 있습니다. 내 예제 데이터가 귀하의 데이터와 유사한 지 잘 모르겠지만 아래 코드에서는 단순히 min
열 x 값과 max
열 y 값의 차이를 잠재적 인 간격의 경계로 사용했습니다 (이는 유스 케이스에 따라 다릅니다). 또는 아닙니다). 그게 도움이 되니?
data <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
colnames(data) <- c("x", "y")
cl <- kmeans(data, 2)
data <- as.data.frame(cbind(data, cluster = cl$cluster))
lapply(split(data, data$cluster), function(x) {
min_x <- min(x$x)
max_y <- max(x$y)
diff <- max_y-min_x
c(min_x = min_x , max_y = max_y, diff = diff)
})
# $`1`
# min_x max_y diff
# -0.6906124 0.5123950 1.2030074
#
# $`2`
# min_x max_y diff
# 0.2052112 1.6941800 1.4889688
[좋은 질문 올리기] (http://stackoverflow.com/help/how-to-ask) 및 [재현 가능한 예] (http : // stackoverflow.com/questions/5963269). 이렇게하면 다른 사람들이 당신을 도울 수있게됩니다. – Axeman