Cómo vectorizar sus funciones en r
Funciones vectorizadas son una característica muy útil de R, pero los programadores que están acostumbrados a otros idiomas a menudo tienen problemas con este concepto al principio. LA vectorizada función no funciona sólo en un único valor, pero en un vector conjunto de valores al mismo tiempo.
Su reflejo natural como programador puede ser la de un bucle sobre todos los valores del vector y aplicar la función, pero vectorización que hace innecesario. Confíe en nosotros: Cuando empiece a usar vectorización en I, que va a ayudar a simplificar el código.
Para tratar de funciones vectorizadas, usted tiene que hacer un vector. Esto se hace mediante el uso de la c () función, que significa concatenar. Los valores reales están separados por comas.
He aquí un ejemplo: Supongamos que la abuela juega al baloncesto con su amiga Geraldine, y te guarde una puntuación de número de canastas en cada juego de la abuelita. Después de seis juegos, desea saber cuántas canastas Granny ha hecho hasta ahora esta temporada. Usted puede poner estos números en un vector, como esto:
> Baskets.of.Granny lt; - c (12,4,4,6,9,3)> baskets.of.Granny [1] 12 4 4 6 9 3
Para encontrar el número total de cestas Granny hizo, que acaba de escribir lo siguiente:
> Sum (baskets.of.Granny) [1] 38
Usted podría conseguir el mismo resultado por ir sobre el número de vectores por número, añadiendo cada nuevo número a la suma de los números anteriores, pero ese método podría requerir que escribir más código y se necesitaría más tiempo para calcular. No se dará cuenta de que en sólo seis números, pero la diferencia será evidente cuando se tiene que sumar unos pocos miles de ellos.
En este ejemplo de vectorización, una función utiliza el vector completo para darle un resultado. Por supuesto, este ejemplo es trivial (usted puede haber adivinado que sum () sería lograr el mismo objetivo), pero para otras funciones en R, la vectorización puede ser menos evidente.
Un ejemplo menos obvio de una función vectorizado es la pegar() función. Si comete un vector con los nombres de los miembros de su familia, pegar() puede añadir el apellido a todos ellos con un comando, como en el siguiente ejemplo:
> Firstnames lt; - c ("Joris", "Carolien", "Koen")> apellido lt; - "Meys"> Pegar (firstnames, apellido) [1] "Joris Meys" "Carolien Meys" "Koen Meys"
R toma el vector nombre de pila y luego pega los apellido en cada valor. ¿Cuan genial es eso? En realidad, R combina dos vectores. El segundo vector - en este caso, apellido - es sólo un valor de largo. Ese valor se reciclado por el pegar() funcionar como el tiempo necesario.
También puede dar R dos vectores más largos, y R se combinarlos elemento por elemento, como este:
> Autores lt; - c ("Andrie", "Joris")> apellidos lt; - c ("de Vries", "Meys")> Pegar (autores, apellidos) [1] "Andrie de Vries" "Joris Meys"
No se necesita ningún código complicado. Todo lo que tienes que hacer es hacer los vectores y los puso en la función.