son representan reales racionales propiedades numeros los irracionales ejercicios ejemplos cuales conceptos como clasificacion caracteristicas r integer

representan - ¿Cuándo se deben especificar los números enteros explícitamente?



numeros reales pdf (2)

El uso de 1L etc. es programáticamente seguro, ya que es explícito en cuanto a lo que se entiende, y no depende de ninguna conversión, etc.

Al escribir código de forma interactiva, puede ser fácil detectar errores y corregirlos en el camino; sin embargo, si está escribiendo un paquete (incluso la base R ), será más seguro ser explícito.

Cuando considere la igualdad, el uso de números flotantes causará problemas de precisión. Consulte estas preguntas frecuentes .

La especificación explícita de enteros evita esto, como nrow y length , y los argumentos de índice para apply return o require integers.

A menudo escribo código R donde pruebo la longitud de un vector, el número de filas en un marco de datos o las dimensiones de una matriz, por ejemplo, if (length(myVector) == 1) . Mientras hurgaba en algún código R base, noté que en tales comparaciones los valores se expresan explícitamente como enteros, usualmente usando el sufijo ''L'', por ejemplo if (nrow(data.frame) == 5L) . Los enteros explícitos también se usan a veces para argumentos de función, por ejemplo estas declaraciones de la función cor : x <- matrix(x, ncol = 1L) y apply(u, 2L, rank, na.last = "keep") . ¿Cuándo deberían los números enteros especificarse explícitamente en R? ¿Hay consecuencias potencialmente negativas por no especificar números enteros?


Tu preguntaste:

¿Hay consecuencias potencialmente negativas por no especificar números enteros?

Hay situaciones en las que es probable que importe más. De Chambers Software para Análisis de Datos p193:

Los valores enteros se representarán exactamente como números "dobles" siempre que el valor absoluto del entero sea menor que 2 ^ m, la longitud de la parte fraccional de la representación (2 ^ 54 para máquinas de 32 bits).

No es difícil ver cómo si calcularas un valor, podría parecer un número entero, pero no del todo uno:

> (seq(-.45,.45,.15)*100)[3] [1] -15 > (seq(-.45,.45,.15)*100)[3] == -15L [1] FALSE

Sin embargo, es más difícil encontrar un ejemplo de tipeo explícito en un entero y hacer que no surja un número entero en la representación de punto flotante, hasta que entres en los valores más grandes que Chambers describe.