Descobrir as propriedades dos vetores em R
Vetores têm uma estrutura e um tipo, e R é um pouco sensível sobre ambos. Alimentando R o tipo errado de vector é como tentar fazer o seu gato comer comida de cachorro: Algo vai acontecer, e as chances são de que ele não vai ser o que você esperava. Então, é melhor você saber que tipo de vector que você tem.
Olhando para a estrutura de um vector
R dá-lhe uma maneira fácil de olhar para a estrutura de qualquer objeto. Este método é útil sempre que você duvidar da forma do resultado de uma função ou um script que você escreveu. Para dar uma olhada dentro objetos R, utilize o str () função.
o str () função dá-lhe o tipo ea estrutura do objeto.
Dê uma olhada no vector baskets.of.Granny:
> Str (baskets.of.Granny) Num [1: 6] 12 4 5 6 9 3
R diz-lhe algumas coisas aqui:
Em primeiro lugar, ele diz-lhe que este é um num (Numérico) tipo de vetor.
Ao lado do tipo do vetor, R lhe dá as dimensões do vetor. Este exemplo tem apenas uma dimensão, e que tem índices de dimensão variando de 1 a 6.
Finalmente, R lhe dá os primeiros valores do vetor. Neste exemplo, o vector tem apenas seis valores, então você vê todos eles.
Se você quiser saber única quanto tempo um vetor é, você pode simplesmente usar o comprimento() função, como segue:
> Comprimento (baskets.of.Granny) [1] 6
Vetores em R pode ter outros tipos também. Se você olhar para o vetor autores, por exemplo, você vê uma pequena diferença:
> autores lt; - c (# 147-Andrie # 148-, # 147-Joris # 148 -)> str (autores) chr [1: 2] # 147 Andrie # 148- # 147-Joris # 148-
Mais uma vez, você tem as dimensões, o alcance dos índices e os valores. Mas desta vez, R indica o tipo de vector é chr (personagem).
Aqui estão alguns vetores que você vai querer saber:
vetores numéricos, contendo todos os tipos de números.
vetores inteiros, contendo valores inteiros. (Um vector inteiro é um tipo especial de vetor numérico.)
vetores lógicos, contendo valores lógicos (VERDADE e / ou FALSO).
vetores caráter, contendo texto.
vetores de data e hora, contendo as datas e horários em diferentes formatos.
fatores, um tipo especial de vetor para trabalhar em todas as categorias.
Todos os tipos listados de vetores podem ter valores em falta (N / D).
R faz uma clara distinção entre estes tipos de vectores, em parte por razões de lógica. Multiplicando duas palavras, por exemplo, não faz sentido.
tipos de vetor de testes
Apesar de str () função, R contém um conjunto de funções que permitem que você teste para o tipo de um vetor. Todas estas funções têm a mesma sintaxe: é, um ponto, e, em seguida, o nome do tipo.
Você pode testar se um vetor é do tipo foo usando o is.foo () função. Este teste funciona para cada tipo de vetor apenas substituir foo com o tipo que você deseja verificar.
Para testar se baskets.of.Granny é um vetor numérico, por exemplo, use o seguinte código:
> Is.numeric (baskets.of.Granny) [1] VERDADEIRO
Você pode pensar que baskets.of.Granny é um vetor de números inteiros, de modo a verificar-lo, como se segue:
> Is.integer (baskets.of.Granny) [1] FALSO
R concorda com o professor de matemática aqui. número inteiro tem um significado diferente para R do que tem para nós. O resultado de is.integer () não é sobre o valor, mas sobre a forma como o valor é armazenado na memória.
R tem dois modos principais para o armazenamento de números. O modo padrão é duplo. Neste modo, todos os números utiliza 64 bits de memória. O número também é armazenada em três partes. Um bit indica o sinal do número, 52 bits representam a parte decimal do número, e os bits restantes representam o expoente. Dessa forma, você pode armazenar números tão grandes como 1,8 x 10308 em apenas 64 bits.
o número inteiro modo leva apenas 32 bits de memória, e os números são representados como números inteiros binários na memória. Assim, o maior inteiro é de cerca de 2,1 bilhões de dólares, ou, mais exatamente, 231 - 1. Isso é 31 bits para representar o número em si, 1 bit para representar o sinal do número, e -1, porque você começa com 0.
Você deve usar inteiros, se você quiser fazer cálculos inteiros exatos em pequenos números inteiros ou se você quiser economizar memória. Caso contrário, o modo de duplo funciona muito bem. Uma das coisas agradáveis sobre R é que você quase nunca precisa se preocupar sobre se algo é armazenado como um inteiro ou um duplo!
Você forçar R para armazenar um número como um número inteiro, adicionando eu após o que, como no exemplo a seguir:
> x lt; - C (4L, 6L)> is.integer (X) [1] VERDADEIRO
Modo de tudo o que é usado para armazenar o valor, is.numeric () retornos VERDADE em ambos os casos.