[R-br] Uma pequena dúvida sobre métodos

Cesar Rabak cesar.rabak em gmail.com
Segunda Setembro 1 18:02:30 BRT 2014


José Cláudio,

De fato o R tem uma "bagagem histórica" e nem tudo nele é ortogonal (no
sentido de programação) nem totalmente orientado a objetos.

IMNSHO, acho que a abordagem que, em princípio, lhe deixa mais apreensivo
seria a mais apropriada (e eventualmente após um teste de fogo no pacote,
uma negociação poderia ser feito com os desenvolvedores do pacote
base/stats do R para migrar essas funções para lá [que me parece o lugar
"certo" para ela]), e uma ação intermediária poderia ser sobrepor essas
funções no seu pacote e assegurar-se que se o(s) objeto(s) não fossem do
pacote fdt a função do pacote base fosse chamada (na chamada do pacote você
teria a famosa mensagem de *masking* dos objetos que você implementasse,
mas isso já é a vida como ela é no [atual] R.

meus 0,01999999...

[]s
--
Cesar Rabak



2014-09-01 17:43 GMT-03:00 Jose Claudio Faria <joseclaudio.faria em gmail.com>:

> Olá pessoal,
>
> Gostaria de fazer uma consulta ao pessoal mais ligado ao
> desenvolvimento de soluções para o R.
>
> Estamos trabalhando para fazer o pacote fdth
> (http://cran.r-project.org/web/packages/fdth/index.html) mais
> genérico, flexível e por conseguinte mais útil aos usuários.
>
> Entre as novidades:
> - os métodos tabulares e gráficos foram estendidos para as variáveis
> categóricas com as novas opções (barchart, poligon e dotchart para
> qualquer coluna da fdt assim como o gráfico de pareto) para as
> categóricas;
>
> - permite a criação de tabelas de distribuição de frequências (fdt)
> para variáveis contínuas e categóricas com um mínimo de argumentos
> baseado em uma fdt prévia existente na literatura (ou seja, você não
> conhece - de fato - o vetor da variável, apenas as frequências);
>
> - cálculo de medidas de tendência central (média e mediana) e posição
> (quantil genérico) a partir de uma fdt.
>
> Para gerar uma tabela de uma variável contínua (por exemplo) à partir
> do vetor de frequências é bem simples:
> > tb <- make.fdt(x=vetor_freq, start, end)
>
> Uma vez criado 'tb' irá pertencer a classe 'fdt'.
> Foram implementando métodos para as funções genéricas (mean, median,
> quantile) para a classe 'fdt'. por exemplo:
> > mean(tb)
>
> > median(tb)
>
> > quantile(tb, i=10, probs=seq(0, 1, .1) para calcular o 10 percentil.
>
> Minha questão é a seguinte, as funções 'var' e 'sd' não são genéricas.
> Assim não posso implementar o métodos: var.fdt e sd.fdt para chamar assim:
> > var(tb)
>
> > sd(tb)
>
> Poderia se criasse nova funções 'var' e 'sd' genéricas no pacote.
> Contudo, fico um pouco apreensivo com esta abordagem.
>
> Qual seria uma opção razoável para este caso?
> A mais simples seria escrever as funções 'var.fdt' e 'sd.fdt' e o
> usuário teria que usar assim:
>
> > var.fdt(x=tb)
>
> > sd.fdt(x=tb)
>
> Mas foge do padrão do restante do pacote que realmente é orientado a
> objetos S3.
>
> Nunca tinha me deparado com uma caso desses.
>
> Sugestões são muito bem vindas...
>
> Ab,
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> Jose Claudio Faria
> Estatistica
> UESC/DCET/Brasil
> joseclaudio.faria at gmail.com
> Telefones:
> 55(73)3680.5545 - UESC
> 55(73)9966.9100 - VIVO
> 55(73)9100.7351 - TIM
> 55(73)8817.6159 - OI
> ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
> _______________________________________________
> R-br mailing list
> R-br em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140901/d5478336/attachment.html>


Mais detalhes sobre a lista de discussão R-br