Cómo enviar a un método en el r

Una herramienta útil cuando se trata de funciones en R está enviando a un método. Una cosa para recordar acerca de las funciones de R es una función que puede dar un resultado diferente en función del tipo de valor que se da a los argumentos R tiene un sistema de genio, llamado sistema de función genérica, que le permite llamar a diferentes funciones con el mismo nombre.

Video: Tutorial Como Ganar Dinero por Internet GRATIS 2017 | Metodo Bitcoin

Pensar en marcos y listas de datos. Si imprime una lista en la consola, se obtiene la salida dispuestos en filas. Por otra parte, una trama de datos se imprime a la consola dispuestos en columnas. Entonces el impresión() función trata listas y cuadros de datos de manera diferente, pero en ambas ocasiones se utiliza la misma función.

Encuentra los métodos detrás de la función

Es fácil averiguar si se ha utilizado la misma función en ambas ocasiones - sólo vistazo dentro del código de función de impresión() escribiendo su nombre en la línea de comandos, así:

gt; printfunction (x, ...) UseMethod ("impresión")

Puede pasar por alto las dos últimas líneas, ya que sólo son utilizados por los desarrolladores R. Pero echar un vistazo al cuerpo de la función - es sólo una línea!

Funciones que no hacen mucho más que la transmisión de los objetos a la función de la derecha se denominan funciones genéricas. En este ejemplo, impresión() es una función genérica. Las funciones que realizan el trabajo real se llaman métodos.

Use métodos con UseMethod

¿Cómo es posible que una línea de código en el impresión() función de hacer tantas cosas complejas como vectores de impresión, cuadros de datos y listas de todo de una manera diferente?

La respuesta está contenida en el UseMethod () función, que es la función central en el sistema de función genérica de R. UseMethod () R dice a moverse a lo largo y buscar una función que puede lidiar con el tipo de objeto que se da como argumento x.

R hace que al mirar a través del conjunto completo de funciones en busca de otra función que comienza con impresión seguido de un punto y luego el nombre del tipo de objeto.

Video: ¿Como enviar un arreglo de parámetro? Curso de C# Basico 15

Puede hacerlo usted mismo usando el comando propósito ( ‘imprimir ’).. Entre las comillas, se puede poner una expresión regular al igual que en el grep () función. Con el fin de decir que el punto R significa en realidad un punto, tiene que preceder con dos barras invertidas. No se sorprenda cuando llegue a más de 40 diferentes impresión() funciones para todo tipo de objetos.

Suponga que tiene una trama de datos que desea imprimir. R buscará la función print.data.frame () y utilizar esa función para imprimir el objeto que se pasa como argumento. También puede llamar a esa función a sí mismo de esta manera:

gt; uno pequeño lt; - data.frame (a = 1: 2, b = 2: 1) gt; print.data.frame (small.one) una b1 1 22 2 1

El efecto de esa función se diferencia en nada de lo que se obtendría si se ha utilizado el genérico impresión (small.one) funcionar en su lugar. Eso es porque impresión() dará a la uno pequeño al print.data.frame () funcionar para cuidar de él.

Video: Cómo mandar mensajes telepaticos facilmente

métodos de uso por defecto

En el caso de una lista, usted puede estar tentado a buscar una print.list () función. Pero no va a funcionar, porque el print.list () función no existe. Todavía eso no es un problema para R - R ignorará el tipo del objeto en ese caso y sólo tiene que buscar una método por defecto, print.default ().

Para muchas funciones genéricas, hay un método por defecto que se utiliza ningún método específico si se puede encontrar. Si hay uno, puede reconocer el método predeterminado por la palabra defecto después del punto en el nombre de la función.

Por lo tanto, si desea imprimir la trama de datos como una lista, utilice el método por defecto de esta manera:

gt; print.default (small.one) $ a [1] 1 2 $ b [1] 2 1attr (,"clase") [1] "marco de datos"
Artículos Relacionados