Cómo utilizar la familia aplicarán de funciones en r
Usando para
bucles tiene algunos efectos secundarios muy importantes. Los objetos que se crean en el para bucle de permanecer en el área de trabajo después. Objetos cambia en el para bucle se cambian en el espacio de trabajo. Aunque esto puede ser las intenciones para algunos, para otros, se trata de un efecto secundario no deseado de la manera para bucles se implementan en R.Echa un vistazo a el siguiente ejemplo:
> Songline lt; - "¡Fuera de mis sueños ..."> para (Songline en 1: 5) print ('... Entra en mi coche! ")
Contrariamente a lo que se puede esperar, después de ejecutar este código, el valor de Songline no es la cadena de "¡Fuera de mis sueños ...", pero el número 5, como se muestra en la salida a continuación:
> Songline [1] 5
A pesar de que nunca ha cambiado de forma explícita el valor de Songline en cualquier parte del código, R lo hace implícitamente al realizar la para lazo. Cada iteración, R reasigna el siguiente valor a partir del vector de Songline . . . en el área de trabajo!
Al elegir los nombres de las variables y el identificador sabiamente, puede evitar meterse en problemas. Al escribir grandes guiones, es necesario hacer un poco de contabilidad grave para los nombres para evitar errores.
Para ser completamente correcta, utilizando un para bucle tiene un efecto sobre el medio ambiente se trabaja en ese momento. Si usted sólo tiene que utilizar el para bucle en secuencias de comandos que se ejecutan en la consola, los efectos se llevará a cabo en el área de trabajo. Si utiliza un para bucle en el cuerpo de la función, los efectos se llevará a cabo en el entorno de esa función.
Aquí está la buena noticia: R tiene otro sistema de bucle que es muy potente, que está al menos tan rápido como para bucles (y, a veces mucho más rápido), y - lo más importante de todo - que no tiene los efectos secundarios de una para lazo. En realidad, este sistema consiste en una familia completa de funciones relacionadas, conocido como el aplicar familia. Esta familia contiene siete funciones, terminando con todo aplicar.
Las características de la familia
Antes de empezar a usar cualquiera de las funciones en la familia de aplicar, aquí son las propiedades más importantes de estas funciones:
Cada una de las funciones de aplicación lleva al menos dos argumentos: un objeto y otra función. Se pasa la función como argumento.
Ninguno de estos aplicar funciones tiene efectos secundarios. Esta es la razón principal para usarlos !: Si usted puede utilizar cualquier función se aplican en lugar de una para bucle, utilice la solución de aplicación. Tenga en cuenta que los posibles efectos secundarios de la aplicado función no son atendidos por la familia de aplicar.
Todas las funciones de aplicación puede pasar argumentos a la función que se da como argumento. Se hace que el uso de la puntos argumento.
Cada función de la familia aplicar siempre devuelve un resultado. El uso de la familia se aplican sólo tiene sentido si necesita ese resultado. Si desea imprimir mensajes a la consola con impresión() o gato() por ejemplo, usando la familia se aplican es innecesaria.
Conoce a tres de los miembros
Decir hola a aplicar (), sapply (), y lapply (), los miembros más utilizados de la familia de aplicar. Cada una de estas funciones se aplica otra función de todos los elementos de un objeto. Lo que esos elementos son depende del objeto y la función.
Nombre de la función | Objetos de la función Trabaja En | Lo que la Función ve como elementos | Tipo de resultado |
---|---|---|---|
aplicar | Matrix | Las filas o columnas | Vector, matriz, matriz o lista |
Matriz | Las filas, columnas o cualquier dimensión | Vector, matriz, matriz o lista | |
Trama de datos | Las filas o columnas | Vector, matriz, matriz o lista | |
sapply | Vector | Elementos | Vector, matriz o lista |
Trama de datos | Variables | Vector, matriz o lista | |
Lista | Elementos | Vector, matriz o lista | |
lapply | Vector | Elementos | Lista |
Trama de datos | Variables | Lista | |
Lista | Elementos | Lista |