R/ward_cluster.R

Defines functions ward_cluster

Documented in ward_cluster

#' 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)
}
popiela/homework documentation built on Jan. 17, 2021, 1:22 a.m.