| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -17,20 +17,32 @@ ggheatmap<-function(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_gro | 
															
														
														
													
														
															
																 | 
																 | 
																    df<-df %>% summarise(Value=median(Value)) %>% ungroup | 
																 | 
																 | 
																    df<-df %>% summarise(Value=median(Value)) %>% ungroup | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  if (length(unique(df$VarX)) > 1 & length(unique(df$VarY)) > 1){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    order<-clustsort(df %>% spread(VarY,Value) %>% select(!all_of(exclude_group)) %>% as.data.frame) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																  }else{ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    order<-list() | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    if (length(unique(df$VarX)) > 1){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      xhclust<-clustsort(df %>% spread(VarY,Value) %>% select(!all_of(exclude_group)) %>% as.data.frame) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      order[["x"]]<-pull(xhclust, 1)[hclust(dist(xhclust %>% select(-1)))$order] | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    }else{order[["x"]]<-df %>% pull(VarX) %>% unique} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    if (length(unique(df$VarY)) > 1){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      yhclust<-clustsort(df %>% spread(VarY,Value) %>% select(!all_of(exclude_group)) %>% as.data.frame) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      order[["y"]]<-colnames(yhclust)[2:ncol(yhclust)][hclust(dist(t(yhclust %>% select(-1))))$order] | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    }else{order[["y"]]<-df %>% pull(VarY) %>% unique} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  if (length(unique(df$VarX)) > 1 & length(unique(df$VarY)) > | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      1) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    order <- clustsort(df %>% spread(VarY, Value) %>% select(!all_of(exclude_group)) %>% | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                         as.data.frame) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  else { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    order <- list() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (length(unique(df$VarX)) > 1) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      xhclust <- df %>% spread(VarY, Value) %>% | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        select(!all_of(exclude_group)) %>% as.data.frame | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      order[["x"]] <- pull(xhclust, 1)[hclust(dist(xhclust %>% | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                                                     select(-1)))$order] | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    else { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      order[["x"]] <- df %>% pull(VarX) %>% unique | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if (length(unique(df$VarY)) > 1) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      yhclust <- clustsort(df %>% spread(VarY, Value) %>% | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                             select(!all_of(exclude_group)) %>% as.data.frame) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      order[["y"]] <- colnames(yhclust)[2:ncol(yhclust)][hclust(dist(t(yhclust %>% | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                                                                         select(-1))))$order] | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    else { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      order[["y"]] <- df %>% pull(VarY) %>% unique | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																  } | 
																 | 
																 | 
																  } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  if (scale != "none"){ | 
																 | 
																 | 
																  if (scale != "none"){ | 
															
														
														
													
														
															
																 | 
																 | 
																    if (scale == "rows"){ | 
																 | 
																 | 
																    if (scale == "rows"){ | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
 |