
Caríssimos, 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: http://figshare.com/articles/M_todos_de_Dist_ncia_para_Cluster_Hier_rquico/1... 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. Atenciosamente, David Feitosa (\_(\ (=°;°) (("")("") Em 23 de outubro de 2014 10:11, <rcoster@gmail.com> escreveu:
David,
Não sei se isso pode te ajudar ou não, mas o pacote data.table tem um comportamento parecido com o que tu quer: ao fazer um "banco2 <- banco" (onde banco é um arquivo data.table), as 2 variáveis ficam associadas: alterando banco2, tu altera também banco (e vice-versa). Na verdade, a operação '<-' para data.tables cria uma referência e não uma cópia.
*Talvez* seja isso que tu precisa fazer. Agora, como fazer isso eu não sei.
On Thu Oct 23 2014 at 10:53:13 Benilton Carvalho < beniltoncarvalho@gmail.com> wrote:
Putz... pode ser que haja um meio, mas eu desconheco... se vc estivesse usando diretamente min/max, seria o match.call mesmo... mas assinalando-a para uma outra funcao, fica um pouco mais complexo... Sorry por nao ajudar.
Em 23 de outubro de 2014 03:36, David Feitosa <contato@davidfeitosa.com> escreveu:
Benilton, não seria bem isso...
Seria algo do tipo:
#min e max são as funções padrões do R f <- min #f <- max
nome <- algumaFormaDeExtrairOnomeDaFuncao(f)
#dados = estrutura de dados para plotar #nome = titulo do grafico plot(dados, main = nome)
Eu gostaria de saber qual o nome da funcao *f*, nesse caso *min* ou *max*, mas sem ter que fazer um "IFELSE" para mudar o titulo do plot.
No meu caso, serviria para saber qual função foi aplicada aquela massa de dados e que gerou o gráfico.
Atenciosamente,
David Feitosa
(\_(\ (=°;°) (("")("")
Em 22 de outubro de 2014 23:20, Benilton Carvalho < beniltoncarvalho@gmail.com> escreveu:
David,
perdoe minha ignorancia, mas eu nao entendi para o que vc utilizaria... mas, eu acho que o q vc quer e':
minhaFuncao <- function(){ ## codigo print(match.call()[[1]]) ## mais codigo }
vc pode ate' usar as.character(match.call()[[1]]) se quiser a string do nome da funcao...
b
Em 22 de outubro de 2014 17:41, David Feitosa <davidfeitosa@gmail.com> escreveu:
Caríssimos, boa noite.
Existe modo de se obter o nome de uma função em tempo de execução?
Explicando melhor: eu tenho uma função da forma
minhaFuncao <-function(){ #codigo }
e uma variável que recebe essa função:
f <- minhaFuncao
Eu gostaria de obter o nome dela para ser usado em um gráfico
Em Java, eu sei que poderia usar a API de Reflection para, em tempo de execução, analisar a classe, seus métodos etc e obter o nome para uso posterior.
Há como fazer o equivalente em R?
No meu caso, bastaria saber qual o nome da função que a variável "f" carrega.
Grato.
Atenciosamente,
David Feitosa
(\_(\ (=°;°) (("")("")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.