How to create a Stopwords using R
Oi,
I need to do a task and I'm not coming up with a logical reasoning.
My scenario is: I have a DF with several columns, I need to "read column 3", identify the words and sort.
Example:
DF
nome rua funcao
alberto assis programador
elisa cons enfermeira
pedro assis prog.
I want to "read column 3" and whenever I find "programmer / prog" or similar, in a new column "classification" put "Python", the DF would look like this.
DF
nome rua funcao classificacao
alberto assis programador Python
elisa cons enfermeira outros
pedro assis programador. Python
Could someone tell me if I create a stopWords is that the best way to solve it ?
5
Author: Brenda Xavier, 2018-09-28
2 answers
One way to do this, probably not the most efficient.
dataset = read.table(text = 'nome rua funcao
alberto assis programador
elisa cons enfermeira
pedro assis prog.', header = T)
palavras_similares = c("prog.", "Prog", "programador", "Programador", "programador.", "Programador.")
#Posição das palavras encontradas
indice = match(palavras_similares, dataset$funcao, nomatch = 0)
#Vetor auxiliar
classificacao = rep("outros", nrow(dataset))
#Substituindo na posição das palavras encontradas
classificacao[indice] = "Python"
#Atribuindo o vetor ao Dataframe
dataset$classificacao = classificacao
dataset
# nome rua funcao classificacao
#1 alberto assis programador Python
#2 elisa cons enfermeira Outros
#3 pedro assis prog. Python
Another mode using the package dplyr
library(dplyr)
(dataset <- mutate(dataset, classificacao = ifelse(dataset$funcao %in% palavras_similares, "Python", "Outros")))
# nome rua funcao classificacao
#1 alberto assis programador Python
#2 elisa cons enfermeira Outros
#3 pedro assis prog. Python
4
Author: Thiago Fernandes, 2018-09-28 19:30:45
To complement @Thiago Fernandes ' answer, you can find similar patterns using the function grep()
:
dataset[grep('prog', dataset$funcao), 'funcao']
# [1] programador prog.
The function grep()
returns the position of the elements while grepl()
returns a TRUE
or FALSE
:
dplyr::mutate(dataset, classificacao = ifelse(grepl('prog', dataset$funcao), "Python", "Outros"))
6
Author: Willian Vieira, 2018-09-28 19:42:56