Aula 15 - Curso de R - Convertendo objetos
Antes, quero deixar meus links de afiliados pra vocês:
Se cadastrando, vocês poderão conhecer, usar e testar gratuitamente alguns recursos dos serviços oferecidos por eles.
Por favor, se gostarem do conteúdo dêem um joinha 👍, curtam e compartilhem a página do Código Fluente no Facebook.
Endereço para baixar os arquivos e o script:
Convertendo objetos
Você deve ter percebido que as diferenças entre alguns tipos de objetos são pequenas, portanto, é lógico que é possível converter um objeto de um tipo para outro, alterando alguns de seus atributos.
Essa conversão será feita com uma função do tipo
as.something.
O resultado de uma conversão depende obviamente dos atributos do objeto convertido.
Geralmente, a conversão segue regras intuitivas.
A tabela a seguir resume a conversão dos modos.
| Conversão para |
Função |
Regras |
| numeric |
as.numeric |
FALSE => 0
TRUE =>1
"1", "2", . . . => 1, 2, . . .
"A", . . . =>NA; |
| logical |
as.logical |
0 => FALSE
other numbers => TRUE
"FALSE", "F" => FALSE
"TRUE", "T" => TRUE |
| characteras.character |
as.character |
1, 2, . . .=> "1", "2", . . .
FALSE=> "FALSE"
TRUE=> "TRUE" |
Existem funções para converter os tipos de objetos (
as.matrix,
as.ts,
as.data.frame,
as.expression,
. . . )
Essas funções afetam outros atributos além dos modos, durante a conversão.
Os resultados são geralmente intuitivos.
Uma situação frequentemente encontrada é a conversão de fatores em valores numéricos.
Nesse caso, R faz a conversão com a codificação numérica dos níveis do fator:
fac <- factor(c(1, 10))
fac
#Saída
#[1] 1 10
#Levels: 1 10
as.numeric(fac)
#Saída
#[1] 1 2
Isso faz sentido ao considerar um fator de modo caractere :
fac2 <- factor(c("Male", "Female"))
fac2
#Saída:
#[1] Male Female
#Levels: Female Male
as.numeric(fac2)
#Saída
#[1] 2 1
Observe que o resultado não é NA, como seria de esperar.
Para converter um fator de modo numérico em um vetor numérico, mas, mantendo os níveis, como são originalmente especificados, é preciso primeiro converter em caractere, depois em numérico.
as.numeric(as.character(fac))
[1] 1 10
Este procedimento é muito útil se em um arquivo uma variável numérica também tiver valores não numéricos.
Vimos que
read.table() em tal situação, por padrão, ler esta coluna como um fator.
Valeu, ficamos por aqui. 😉
Por favor, se gostarem do conteúdo dêem um joinha 👍, curtam e compartilhem a página do Código Fluente no Facebook.
Endereço para baixar os arquivos e o script:
Meus links de afiliados:
Obrigado e bons estudos. ;)