#' Clustering the respondents based on philosophy module using ward's clustering method.
#' @param df
#'
#' @return
#' @export
#'
#' @examples
#' ward_cluster(survey_data)
ward_cluster <- function(df)
{
age_gender <- df %>% dplyr::select(response_id,s_age, s_gender)%>%
haven::as_factor()
df <- df%>% dplyr::select(response_id , contains('m1_philosophy'))
klaster2 = cluster::agnes(df, method="ward")
groups<-cutree(klaster2, k=8)
joined2 <- cbind(df , cluster = groups) %>%
dplyr::left_join(age_gender) %>%
dplyr::mutate(cluster = paste0("Cluster ", cluster))%>%
dplyr::select( response_id , cluster,s_age,s_gender)
Segment2 <- joined2 %>%
dplyr::group_by(cluster , s_age,s_gender) %>%
dplyr::summarise(count = dplyr::n(), .groups = 'drop' ) %>%
dplyr::ungroup() %>%
tidyr::pivot_wider(names_from = cluster , values_from = count)
return(Segment2)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.