El descubrimiento de las propiedades de los vectores en r
Los vectores tienen una estructura y un tipo, y R es un poco sensible sobre ambos. Alimentar R el tipo incorrecto de vector es como tratar de hacer que su gato come comida para perros: Algo va a suceder, y lo más probable es que no va a ser lo que usted esperaba. Por lo tanto, es mejor que saber qué tipo de vector que tiene.
En cuanto a la estructura de un vector
R le proporciona una manera fácil de ver la estructura de cualquier objeto. Este método es muy útil cuando usted duda de la forma de la raíz de una función o un guión que escribió. Para echar un vistazo dentro de los objetos de investigación, utilice el str () función.
los str () función que da el tipo y estructura del objeto.
Echa un vistazo a el vector baskets.of.Granny:
> Str (baskets.of.Granny) num [1: 6] 12 4 5 6 9 3
R que algunas cosas le dice aquí:
En primer lugar, le dice que se trata de una num tipo (numérico) de vector.
Al lado del tipo de vector, R le da las dimensiones del vector. Este ejemplo tiene sólo una dimensión, y que tiene dimensión índices que van de 1 a 6.
Finalmente, R le da los primeros valores del vector. En este ejemplo, el vector tiene sólo seis valores, por lo que ver a todos ellos.
Si quieres saber solamente el tiempo que un vector es, simplemente puede utilizar el largo() función, como sigue:
> Longitud (baskets.of.Granny) [1] 6
Vectores en R pueden tener otros tipos también. Si nos fijamos en el vector autores, por ejemplo, se ve una pequeña diferencia:
> Autores lt; - c (" # 148 ;, Andrie " Joris ")> str (autores) chr [1: 2] " Andrie " " Joris "
Una vez más, se obtiene las dimensiones, el rango de los índices y los valores. Pero esta vez, R indica el tipo de vector es chr (personaje).
Aquí hay algunos vectores que usted querrá saber:
Vectores numéricos, que contiene todas las clases de números.
Vectores enteros, que contiene valores enteros. (Un vector de número entero es un tipo especial de vector numérico.)
Vectores lógicos, que contiene valores lógicos (CIERTO y / o FALSO).
Vectores de caracteres, que contiene texto.
Vectores de fecha y hora, que contiene las fechas y horas en diferentes formatos.
Factores, un tipo especial de vector para trabajar con categorías.
Todos los tipos enumerados de vectores pueden tener valores perdidos (N / A).
R hace una clara distinción entre estos tipos de vectores, en parte por razones de lógica. Multiplicando dos palabras, por ejemplo, no tiene sentido.
Tipos de pruebas vector
Aparte de la str () función, R contiene un conjunto de funciones que permiten poner a prueba para el tipo de un vector. Todas estas funciones tienen la misma sintaxis: es, un punto, y luego el nombre del tipo.
Puede probar si un vector es de tipo foo mediante el uso de la is.foo () función. Esta prueba funciona para todo tipo de vectores basta con sustituir foo con el tipo que desea comprobar.
Para probar si baskets.of.Granny es un vector numérico, por ejemplo, utilice el siguiente código:
> Is.numeric (baskets.of.Granny) [1] TRUE
Usted puede pensar que baskets.of.Granny es un vector de enteros, a fin de comprobar que, de la siguiente manera:
> Is.integer (baskets.of.Granny) [1] FALSE
R no está de acuerdo con el profesor de matemáticas aquí. Entero tiene un significado diferente para R de lo que tiene para nosotros. El resultado de is.integer () no se trata del valor sino de la forma en que el valor se almacena en la memoria.
R tiene dos modos principales para el almacenamiento de números. El modo estándar es doble. En este modo, todos los números utiliza 64 bits de memoria. El número también se almacena en tres partes. Un bit indica el signo del número, 52 bits representan la parte decimal del número, y los bits restantes representan el exponente. De esta manera, usted puede almacenar números tan grandes como 1.8 x 10308 en sólo 64 bits.
los entero modo de toma sólo 32 bits de memoria, y los números se representan como enteros binarios en la memoria. Así, el mayor entero es alrededor de 2,1 millones de dólares, o, más exactamente, 231 - 1. Eso es 31 bits para representar el número en sí, 1 bit para representar el signo del número, y -1 porque empiezas a 0.
Usted debe usar enteros si usted quiere hacer cálculos exactos enteros en pequeños números enteros o si desea guardar la memoria. De lo contrario, el modo de doble funciona muy bien. Una de las cosas buenas de R es que casi nunca tiene que preocuparse acerca de si algo se almacena como un entero o un doble!
Usted fuerza R para almacenar un número como un entero añadiendo L después de que, como en el siguiente ejemplo:
> X lt; - c (4L, 6L)> is.integer (x) [1] TRUE
Sea cual sea el modo se utiliza para almacenar el valor, is.numeric () devoluciones CIERTO en ambos casos.