Eu notei que o e-mail que enviei ontem não foi permitido pelo tamanho das imagens.
Estou reenviando, mas com um link externo que as contem.
Segue...
rcoster,
Na verdade não é bem isso.
Vou colocar aqui um trecho com a chamada do código
e pode ser que fique mais claro.
Estou fazendo uma disciplina em que o trabalho atual consiste em algoritmos de Clusterização.
Nele, tive que implementar a função que realiza o agrupamento hierárquico.
Esse agrupamento pode variar segundo fórmulas que geram as distâncias entre elementos do dataset.
Os métodos que já implementei foram: singleLink, completeLink, groupAverage e ward.
Na chamada da função, eu devo permitir que o usuário defina qual o critério da distância.
Como eu não sei fazer esse procedimento de pegar o nome da função,
tive que implementar passando uma sequência de caracteres e, internamente na função,
verificar a qual função ela mapeia, na seguinte forma:
#inicio
selecao <- "singleLink"
#selecao <- "completeLink"
#selecao <- "groupAverage"
#selecao <- "ward"
#chamada da funcao
clusterHierarquico(dados, selecao)
#dentro do corpo de clusterHierarquico(...)
#definindo a funcao para escolha dos valores entre distancias dos grupos
funcao <- NULL
if(selecao == "completeLink"){
funcao <- completeLink
}else if(selecao == "groupAverage"){
funcao <- groupAverage
}else if(selecao == "ward"){
funcao <- ward
}else{
#padrao
funcao <- singleLink
}
#usa funcao como método para calculo das distancias
#fim
Embora eu consiga gerar pelos nomes, fazendo a verificação com IFELSE, isso deixa o código "preso".
Se houvesse uma forma de pegar o nome da função que é passada como argumento,
eu poderia usar esse procedimento para pegar o nome e usar no plot do dendrograma.
Abaixo, seguem os gráficos que estou gerando de acordo com um dataset de países europeus com 2 atributos:
inflação e taxa de desemprego:
Deysi enviou-me mensagem de que há uma forma, mas ainda não me retornou com a solução, pois não está com acesso ao PC dela no momento.
Caso tenha ficado mais claro agora e alguém saiba como resolver, agradeço antecipadamente.
Eu sei que pode parecer um "exagero", mas gostaria de deixar o código mais flexível,
até como forma de aprender para implementações mais complexas no futuro.