Mudanças de Conteúdos em Colunas
2 participantes
Página 1 de 1
Mudanças de Conteúdos em Colunas
Professor Marcos,
Qual a maneira mais prática de substituir colunas criadas com variáveis nominais por fatores binários ou ordinais?
Se for o caso de isso ser necessário p/várias colunas, o comando pode ser criado de uma vez só p/todas elas?
Grata pela atenção,
Priscilla
Qual a maneira mais prática de substituir colunas criadas com variáveis nominais por fatores binários ou ordinais?
Se for o caso de isso ser necessário p/várias colunas, o comando pode ser criado de uma vez só p/todas elas?
Grata pela atenção,
Priscilla
Prions- Mensagens : 18
Data de inscrição : 12/03/2018
Re: Mudanças de Conteúdos em Colunas
Olá, Priscila!
Vai depender do contexto e das mudanças necessárias. Um caso bem simples, para variáveis binárias, poderia ser assim:
A função ifelse() pega uma condição e estabelece uma resposta para quando a condição é verdadeira e outra para quando ela é falsa. Então eu pedi para que ele mudasse para 1 quando a variável fosse "a", e para 0 quando ela não fosse. Como é um exemplo binário, eu nem precisei fazer referência ao "b".
Depois volto aqui e continuamos, ok?
Vai depender do contexto e das mudanças necessárias. Um caso bem simples, para variáveis binárias, poderia ser assim:
- Código:
#Criando dados de exemplo:
exemplo<-structure(list(var1 = structure(c(1L, 1L, 1L, 2L, 2L, 1L, 2L,
1L, 2L, 2L), .Label = c("a", "b"), class = "factor")), .Names = "var1", class = "data.frame", row.names = c(NA,
-10L))
#Os dados (é apenas uma coluna):
exemplo
#No momento, é uma variável categórica (um fator, na linguagem do R):
str(exemplo)
#Podemos mudar para uma variável binária usando um ifelse():
exemplo<-ifelse(exemplo$var1=="a", 1, 0)
#Agora é assim:
exemplo
#E não é mais um fator:
str(exemplo)
A função ifelse() pega uma condição e estabelece uma resposta para quando a condição é verdadeira e outra para quando ela é falsa. Então eu pedi para que ele mudasse para 1 quando a variável fosse "a", e para 0 quando ela não fosse. Como é um exemplo binário, eu nem precisei fazer referência ao "b".
Depois volto aqui e continuamos, ok?
Re: Mudanças de Conteúdos em Colunas
Ok, professor.
Valeu demais pela ajuda!
Valeu demais pela ajuda!
Prions- Mensagens : 18
Data de inscrição : 12/03/2018
Re: Mudanças de Conteúdos em Colunas
Continuando...
Se você estiver lidando com muitas classes, uma solução rápida é simplesmente alterar a classe da variável, usando um as.numeric(). Isso irá alterar cada nível do fator em um número, começando do 1 e seguindo. Por exemplo:
Agora, você pode querer fazer a mudança em várias, seria assim:
Taí!
Se você estiver lidando com muitas classes, uma solução rápida é simplesmente alterar a classe da variável, usando um as.numeric(). Isso irá alterar cada nível do fator em um número, começando do 1 e seguindo. Por exemplo:
- Código:
#Dados de exemplo:
dados<-structure(list(Var1 = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L,
3L, 3L, 1L, 2L, 3L), .Label = c("a", "b", "c"), class = "factor"),
Var2 = structure(c(2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L,
1L, 3L), .Label = c("a", "d", "e", "f"), class = "factor"),
Var3 = structure(c(3L, 3L, 3L, 1L, 1L, 1L, 2L, 2L, 2L, 3L,
1L, 2L), .Label = c("x", "y", "z"), class = "factor")), .Names = c("Var1",
"Var2", "Var3"), class = "data.frame", row.names = c(NA, -12L
))
#Olhando os dados:
dados
#As variáveis:
str(dados)
#Mudando a variável 1:
dados$Var1<-as.numeric(dados$Var1)
#Agora:
dados
str(dados)
Agora, você pode querer fazer a mudança em várias, seria assim:
- Código:
#Tudo de uma vez:
dados<-lapply(dados, as.numeric)
#O lapply muda o objeto para uma lista, mas é fácil mudar de volta:
dados<-as.data.frame(dados)
#Como ficou agora:
dados
str(dados)
Taí!
Re: Mudanças de Conteúdos em Colunas
Aow! Que bacana essa versatilidade do R, gente!
Muito obrigada pelas instruções, professor!
Abs
Muito obrigada pelas instruções, professor!
Abs
Prions- Mensagens : 18
Data de inscrição : 12/03/2018
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|