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

Jose Claudio Faria joseclaudio.faria em gmail.com
Terça Setembro 2 07:09:08 BRT 2014


Agradeço (muito mesmo) as observações e sugestões do Cesar Rabak e
Benilton que indicam a mesma direção.

Após elas terem sido emitidas sinto-me mais seguro para implementar
nesta direção (que é também a que considero a mais correta no sentido
de orientação a objetos).

Agradeço também as dicas do Pedro Emanuel sobre o pacote epicalc e a
função tableStack.
O que estamos fazendo difere bastante da abordagem daquele pacote.

Apenas acho estranho que funções/medidas da magnitude de 'var' e 'sd'
não tenham (ainda) sido implementadas como genéricas pelo Core Team.

Enfim, muito obrigado a todos pelas contribuições!

Creio que irão gostar da nova versão (em breve) do pacote fdth. ;)

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
///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\


2014-09-01 21:46 GMT-03:00 Benilton Carvalho <beniltoncarvalho em gmail.com>:
> Enquanto o R-core nao as torna genericas (vai um tempo... estamos na fila
> para isso ha' algum tempo):
>
> - crie a generica
> - redefina a padrao
> - defina o metodo para a sua classe
>
> sd <- function(x, ...) UseMethod("sd")
> sd.default <- stats::sd
> sd.fdt = function(x, ...) <sua definicao>
>
> b
>
>
>
> Em 1 de setembro de 2014 21:10, Pedro Emmanuel Alvarenga Americano do Brasil
> <emmanuel.brasil em gmail.com> escreveu:
>
>> Claudio,
>>
>> Nao e uma resposta boa, mas como em outros pacotes que uso ja vi funçoes
>> terem o mesmo nome com letras maiusculas ou com pequenas diferenças como
>>
>> Predict ao inves de predict
>> p.values ao inves de p.value
>>
>> Mas em materia de tabelas a melhor funçao que ja usei é a
>> epicalc::tableStack. Ela tem alguns poucos incovenientes que da pra
>> contornar. Essa e bacana pq ja coloca a tabela num formato palatavel para o
>> leitor do relatorio final e da pra exportar para um pmanilha de calculo ou
>> para um documento texto com o pacote rtf por exemplo. Talves te ajude a
>> inspirar alguma coisa nas suas tabelas.
>>
>> Pedro Brasil
>> via Android (:)=
>>
>> Em 01/09/2014 17:43, "Jose Claudio Faria" <joseclaudio.faria em gmail.com>
>> escreveu:
>>
>>> 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.
>>
>>
>> _______________________________________________
>> 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.
>
>
>
> _______________________________________________
> 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.


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