¿Cómo r calcula los valores infinitos, no definidos, y que faltan

Por suerte, R puede hacer frente a anomalías de los datos que confunden algunas otras plataformas estadísticos. Por ejemplo, en algunos casos, usted no tiene valores reales para calcular con. En la mayoría de los conjuntos de datos de la vida real, de hecho, al menos unos pocos valores que faltan. También, algunos cálculos tienen infinito como resultado (como la división por cero) o no pueden llevarse a cabo en absoluto (como tomar el logaritmo de un valor negativo).

¿Cómo R define el infinito

Para comenzar a explorar el infinito en R, ver lo que sucede cuando se intenta dividir por cero:

gt; 2/0 [1] Inf

R correctamente le dice que el resultado es inf, o infinito. infinito negativo se muestra como -inf. Puedes usar inf al igual que se utiliza un número real en los cálculos:

gt; 4 - Inf [1] -Inf

Para comprobar si un valor es finito, utilizar las funciones is.finite () y is.infinite (). Los primeros retornos de función CIERTO si el número es finito el segundo se regresa CIERTO si el número es infinito.

R considera todo lo más grande que el número más grande que un ordenador puede ser pulsado para el infinito - en la mayoría de las máquinas, que es aproximadamente 1,8 × 10308. Esta definición de infinito puede conducir a resultados inesperados, como se muestra en el siguiente ejemplo:

gt; is.finite (10 ^ (305: 310)) [1] TRUE TRUE TRUE TRUE FALSE FALSE

¿Qué hace esta línea de código significa ahora? Vea si usted entiende el anidamiento y la vectorización en este ejemplo. Si se rompe la línea a partir de los paréntesis interiores, se hace comprensible:

  • Ya que sabes 305: 310 le da un vector, que contiene los números enteros de 305 a 310.

    Video: Continuidad y limites laterales SECUNDARIA (4ºESO) matematicas función grafica

  • Todos los operadores están vectorizados, por lo 10 ^ (305: 310) le da un vector con los resultados de 10 a la potencia de 305, 306, 307, 308, 309, y 310.

    Video: Función continua o discontinua con límites (continuidad de funciones)

  • Que el vector se da como argumento para is.finite (). Esa función se dice que los dos últimos resultados - 10 ^ 308 y 10 ^ 309 - son infinitos para R.

Cómo trata de I con resultados indefinidos

Su profesor de matemáticas, probablemente, explicó que si se divide un número real por el infinito, se obtiene cero. Pero lo que si se divide el infinito por infinito?

gt; Inf / Inf [1] NaN

Bueno, R te dice que el resultado es Yaya. Ese resultado significa simplemente No un número. Esta es la manera en que le dice que el resultado de ese cálculo no se define de R.

Lo curioso es que en realidad considera R Yaya a ser numérico, para que pueda utilizar Yaya en los cálculos. El resultado de estos cálculos es siempre Yaya, sin embargo, como se puede ver aquí:

gt; NaN + 4 [1] NaN

Puede probar si un cálculo resulta en Yaya mediante el uso de la is.nan () función. Tenga en cuenta que tanto is.finite () y is.infinite () regreso FALSO cuando se está probando en una Yaya valor.

Cómo R hace frente a los valores que faltan

Uno de los problemas más comunes en las estadísticas es conjuntos de datos incompletos. Para hacer frente a los valores que faltan, R utiliza la palabra clave reservada N / A, Lo que significa No disponible. Puedes usar N / A como un valor válido, por lo que se puede asignar como valor así:

gt; x lt; - NA

Hay que tomar en cuenta, sin embargo, que los cálculos con un valor de N / A También volverá general N / A como resultado:

gt; x + 4 [1] NAGT; log (x) [1] NA

Si desea probar si un valor es N / A, se puede utilizar el is.na () función, como sigue:

gt; is.na (x) [1] TRUE

Tenga en cuenta que la is.na () función también devuelve CIERTO si el valor es Yaya. Las funciones is.finite (), is.infinite (), y is.nan () regreso FALSO para N / A valores.

Funcióninf-InfYayaN / A
is.finite ()FALSOFALSOFALSOFALSO
is.infinite ()CIERTOCIERTOFALSOFALSO
is.nan ()FALSOFALSOCIERTOFALSO
is.na ()FALSOFALSOCIERTOCIERTO
Artículos Relacionados