| methods-kmeans | R Documentation | 
These methods extract data from, and attribute new data to,
objects of class "kmeans" as returned by stats::kmeans().
## S3 method for class 'kmeans'
as_tbl_ord(x)
## S3 method for class 'kmeans'
recover_rows(x)
## S3 method for class 'kmeans'
recover_cols(x)
## S3 method for class 'kmeans'
recover_coord(x)
## S3 method for class 'kmeans'
recover_aug_rows(x)
## S3 method for class 'kmeans'
recover_aug_cols(x)
## S3 method for class 'kmeans'
recover_aug_coord(x)
x | 
 An ordination object.  | 
The recovery generics recover_*() return core model components, distribution of inertia,
supplementary elements, and intrinsic metadata; but they require methods for each model class to
tell them what these components are.
The generic as_tbl_ord() returns its input wrapped in the 'tbl_ord'
class. Its methods determine what model classes it is allowed to wrap. It
then provides 'tbl_ord' methods with access to the recoverers and hence to
the model components.
Other methods for idiosyncratic techniques: 
methods-lm
Other models from the stats package: 
methods-cancor,
methods-cmds,
methods-factanal,
methods-lm,
methods-prcomp,
methods-princomp
# data frame of Anderson iris species measurements
class(iris)
head(iris)
# compute 3-means clustering on scaled iris measurements
set.seed(5601L)
iris %>%
  subset(select = -Species) %>%
  scale() %>%
  kmeans(centers = 3) %>%
  print() -> iris_km
# visualize clusters using PCA
iris %>%
  subset(select = -Species) %>%
  prcomp() %>%
  as_tbl_ord() %>%
  mutate_rows(cluster = iris_km$cluster) %>%
  ggbiplot() +
  geom_rows_point(aes(color = factor(as.character(as.integer(cluster)),
                                     levels = as.character(seq(3L))))) +
  scale_color_brewer(type = "qual", name = "cluster")
# wrap as a 'tbl_ord' object
(iris_km_ord <- as_tbl_ord(iris_km))
# augment everything with names, observations with cluster assignment
(iris_km_ord <- augment_ord(iris_km_ord))
# summarize clusters with standard deviation
iris_km_ord %>%
  tidy() %>%
  transform(sdev = sqrt(withinss / size))
# discriminate between clusters 2 and 3
iris_km_ord %>%
  ggbiplot(aes(x = `2`, y = `3`), color = factor(.cluster)) +
  geom_jitter(stat = "rows", aes(shape = cluster), width = .2, height = .2) +
  geom_cols_axis(aes(color = `1`, label = name),
                 text.size = 2, text_dodge = .1,
                 size = 3, label.alpha = .5) +
  scale_x_continuous(expand = expansion(mult = .8)) +
  scale_y_continuous(expand = expansion(mult = .5)) +
  ggtitle(
    "Measurement loadings onto clusters 2 and 3",
    "Color indicates loadings onto cluster 1"
  )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.