Como testar Vector Tipos em R

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 cestas.do.GRanny é um vetor numérico, por exemplo, use o seguinte código:

> Is.numeric (baskets.of.Granny) [1] VERDADEIRO

Você pode pensar que cestas.do.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.

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.

menu