Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

uso do x na linha de comando

não entendi o motivo de termos que atribuir x <- nem o parâmetro x=x

x <- gsub(pattern = "0|masc",replacement = "M",x = x,ignore.case = T)

dentro desse comando

clientes$novo_sexo <- sapply(X = clientes$sexo, FUN = function(x){
  if (grepl("0|masc", x,ignore.case = T) ){
    x <- gsub(pattern = "0|masc",replacement = "M",x = x,ignore.case = T)
  }else if(grepl("1|fem", x,ignore.case = T)){
    x <- gsub(pattern = "1|fem",replacement = "F",x = x,ignore.case = T)
  }else{
    x <- "nd"
  }
})
3 respostas

Boa noite Marcos, tudo bem?

Então, o uso do x é vindo do parâmetro de function(x), usamos ele no parâmetro da função gsub, porque ele possui a string a ser verificada mas ao mesmo tempo já fazemos a substituição do valor na própria variável, então quando fazemos x <- gsub(pattern = "0|masc",replacement = "M",x = x,ignore.case = T) substituímos o valor atual de x e já retornamos o valor substituído.

Nesse caso o uso é opcional, se você colocar somente gsub(pattern = "0|masc",replacement = "M",x = x,ignore.case = T) irá funcionar também.

Veja o exemplo abaixo para exemplificar melhor o que estou dizendo:

sexo <- c('0','1','fem','masc','--')

novo_sexo <- sapply(X = sexo, FUN = function(x){
  if (grepl("0|masc", x,ignore.case = T) ){
        gsub(pattern = "0|masc",replacement = "M",x = x,ignore.case = T)
  }else if(grepl("1|fem", x,ignore.case = T)){
        gsub(pattern = "1|fem",replacement = "F",x = x,ignore.case = T)
  }else{
        "nd"
  }
})
novo_sexo

Qualquer dúvida só entrar em contato novamente. Abraços!!

entendi. E o parâmetro x = x? não consegui entender na documentação pra que ele serve

solução

Boa noite Marcos, o parâmetro x da função gsub é o que recebe a string a ser tratada. Por exemplo,

texto <- 'Cursos de big data, data science e data analytics'
gsub(pattern = "data",  replacement = "***", x = texto, ignore.case = T)

Abraços!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software