¿Cómo reducir el número de líneas en r

Al transformar el guión en R, no se requiere que todos los elementos. De hecho, la regreso()

declaración es opcional, ya que, por defecto, R siempre devolverá el valor de la última línea de código en el cuerpo de la función.

Volver valores por defecto

Supongamos que usted se olvidó de agregar retorno (resultado) en el addPercent () función. ¿Qué pasaría entonces? Usted puede averiguar si elimina la última línea de la addPercent () función, guarde el archivo, y la fuente de nuevo para cargarlo en el espacio de trabajo.

Cualquier cambio que realice a una función tendrá efecto solamente después de enviar el código adaptado a la consola. Esto sobrescribirá efectivamente el antiguo objeto de función por una nueva.

Si intenta addPercent (new.numbers) de nuevo, que se ve. . . nada. Al parecer, la función no hace nada más - pero esto es una ilusión, como se puede ver con el siguiente código:

> Impresión (addPercent (new.numbers)) [1] "82,2%" "2,5%" "162%" "40%"

En este caso, la última línea de la función devuelve el valor de resultado invisible, es por ello que se ve sólo si se le pregunta específicamente para imprimirlo. El valor se devuelve invisible debido a la asignación en la última línea. Porque esto no es realmente práctico, se puede caer la asignación en la última línea y cambiar el código de función a lo siguiente:

addPercent lt; - la función (x) {ciento lt; - round (x * 100, dígitos = 1) pasta (por ciento "%", septiembre = "")}

Esta función vuelve a funcionar como antes. Puede parecer regreso() es completamente inútil, pero que realmente lo necesita si quiere salir de la función antes de que finalice el código en el cuerpo. Por ejemplo, puede agregar una línea al addPercent función que comprueba si x es numérico, y si no, vuelve NULO, Me gusta esto:

addPercent lt; - (! is.numeric (x)) función (x) {if retorno (NULL) por ciento lt; - round (x * 100, dígitos = 1) pasta (por ciento "%", septiembre = "")}

Rompe las paredes

Los aparatos ortopédicos, {}, formar la pared proverbial alrededor de la función, pero en algunos casos se puede dejar caer ellos también. Suponga que desea calcular las probabilidades de una proporción. Las probabilidades de que ocurra algo no es más que la posibilidad de que suceda dividido por la probabilidad de que no ocurra. Por lo tanto, para el cálculo de las probabilidades, puede escribir una función como esta:

> Probabilidades lt; - función (x) x / (1-x)

Incluso sin las llaves o regreso() declaración, esto funciona perfectamente bien, como se puede ver en el siguiente ejemplo:

> Probabilidades (0,8) [1] 4

Si una función consta de una sola línea de código, puede simplemente añadir que la línea después de la lista de argumentos sin encerrarlo entre llaves. R verá el código después de la lista de argumentos como el cuerpo de la función.

Usted podría hacer lo mismo con el addPercent () función anidando todo lo siguiente:

> AddPercent lt; - la función (x) pasta (round (x * 100, dígitos = 1), "%", septiembre = "")

Eso es un astuto plan para dar la siguiente persona que lee el código de un gran dolor de cabeza. Es un poco menos de un astuto plan si que la próxima persona que es, sin embargo, y lo más probable es, que será.

Ahorro de espacio en un cuerpo de la función es mucho menos importante que mantener el código legible, ya que el ahorro de espacio que no gana nada. Constructos como el posibilidades función son útiles sólo en casos muy específicos.




» » » » ¿Cómo reducir el número de líneas en r