Como despachar a um método em r
Uma ferramenta útil quando se lida com funções de I é despachar a um método. Uma coisa a lembrar sobre as funções em R é que uma função pode dar um resultado diferente com base no tipo de valor que você dá os argumentos R tem um sistema de gênio, o chamado sistema de função genérica,
Conteúdo
- Encontre os métodos por trás da função
- Usar métodos com usemethod
- Video: como enviar mensagens para todos amigos do facebook de uma vez - metodo 2016
- Video: como enviar vídeos mais rápido para o youtube
- Métodos de uso padrão
- Video: como ganhar + r$ 2.500,00 reais por mÊs com bitcoins trabalhando em casa sem investir
Pense sobre os quadros de dados e listas. Se você imprimir uma lista no console, você começa a saída dispostas em fileiras. Por outro lado, um quadro de dados é impressa ao consola dispostos em colunas. Então o impressão() função trata listas e quadros de dados de forma diferente, mas ambas as vezes você usou a mesma função.
Encontre os métodos por trás da função
É fácil descobrir se você usou a mesma função nas duas vezes - basta espiar dentro do código de função de impressão() digitando seu nome na linha de comando, assim:
gt; printfunction (x, ...) UseMethod ("impressão")
Você pode ignorar as duas últimas linhas, porque eles são usados apenas por desenvolvedores R. Mas dê uma olhada no corpo da função - é apenas uma linha!
Funções que não fazem muito mais do que passar em objetos para a função certa são chamados funções genéricas. Neste exemplo, impressão() é uma função genérica. As funções que fazem o trabalho real são chamados métodos.
Usar métodos com UseMethod
Como na terra pode que uma linha de código no impressão() função de fazer tantas coisas complexas como vetores de impressão, quadros de dados e listas de todos de uma forma diferente?
Video: Como Enviar Mensagens Para Todos Amigos do FACEBOOK de Uma Vez - Metodo 2016
A resposta está contida no UseMethod () função, que é a função central no sistema de função genérica de R. UseMethod () diz R para seguir em frente e procurar uma função que pode lidar com o tipo de objeto que é dado como argumento X.
R faz isso olhando através do conjunto completo de funções em busca de outra função que começa com impressão seguido por um ponto e, em seguida, o nome do tipo de objecto.
Você pode fazer isso sozinho usando o comando apropos ( ‘print ’.). Entre as aspas, você pode colocar uma expressão regular bem como na grep () função. A fim de dizer-R que o ponto realmente significa um ponto, você tem que precedê-lo com duas barras invertidas. Não se surpreenda quando você ter mais de 40 diferentes impressão() funções para todos os tipos de objetos.
Suponha que você tenha um quadro de dados que deseja imprimir. R vai olhar para cima a função print.data.frame () e usar essa função para imprimir o objeto que você passou como argumento. Você também pode chamar essa função se assim:
gt; small.one lt; - data.frame (a = 1: 2, b = 2: 1) gt; print.data.frame (small.one) um B1 1 22 2 1
O efeito dessa função não difere em nada do que você poderia obter se usasse o genérico print (small.one) funcionar em seu lugar. Isso é porque impressão() vai dar o small.one ao print.data.frame () funcionam para cuidar dela.
Video: Como enviar vídeos mais rápido para o Youtube
métodos de uso padrão
No caso de uma lista, você pode ser tentado a procurar um print.list () função. Mas isso não vai funcionar, porque o print.list () função não existe. Ainda que não seja um problema para R - R irá ignorar o tipo do objeto, nesse caso, e basta olhar para um método padrão, print.default ().
Video: COMO GANHAR + R$ 2.500,00 REAIS POR MÊS COM BITCOINS TRABALHANDO EM CASA SEM INVESTIR
Para muitas funções genéricas, existe um método padrão que é usado se nenhum método específico pode ser encontrado. Se houver, você pode reconhecer o método padrão pela palavra padrão após o ponto no nome da função.
Então, se você quiser imprimir o quadro de dados como uma lista, use o método padrão como este:
gt; print.default (small.one) $ a [1] 1 2 $ b [1] 2 1attr (,"classe") [1] "quadro de dados"