I have a data frame column where each row has a character text. I need to filter only rows which matches a list of strings.
library(data.table)
library(plyr)
library(dplyr)
The following object has all comments available.
coment<-c("levou meses a incluir um plano de ensino e ainda assim modificou datas durante o semestre",
"demora na correcao, sem parametro para criacao da proxima tarefa devido falta de retorno na tarefa anterior",
"a professora dispersava demais durante as aulas.", "o estimulo a participacao nas aulas obviamente vai tambem do interesse do aluno, mas a professora tambem nao colaborava muito, nunca teve uma dinamica que fosse capaz de envolver os alunos e provoca-los a de fato participarem da aula, sempre houve mais do mesmo, \"\"quem leu o texto?\"\".\n",
"criterios de avaliacao, datas , horarios, como seriam as avaliacoes... foram pontos que demoraram um longo periodo para serem definidos.",
"uma cadeira que tem um volume de texto tao grande nao deveria possuir somente duas provas a meu ver, ainda somos alunos e muitas vezes estamos vendo o conteudo pela primeira vez acumular tanto conteudo para uma prova so prejudica o aluno.",
"nao houve correcao nem discussao pos avaliacao.", "faltou melhor comunicacao no objetivo do trabalho final.",
"nao foi explicado o que seria avaliado no trabalho final.",
"o trabalho final foi bem desgastante em seu processo. a ideia em si se mostrou valida, porem, deveria ser revista o numero de empresas pesquisadas por cada grupo. nos alunos tivemos imensas dificuldades em ter acesso aos gestores das empresas estudadas, dificultando o nosso trabalho. e o tempo de apresentacao tambem nao era compativel com o tamanho da demanda que tivemos ao longo do semestre. apresentar duas empresas em 10 minutos prejudicou por demais as exposicoes de cada grupo."
)
I want to filter only the rows that match at least partially the following strings>
bom <-c("incrivel", "otim", "muito bo", "bom", "bons", "boas", "boa didatica",
"gentil", "melhor", "melhores", "excelencia", "excelente", "proveitosa",
"atencios", "divertid", "boa didatica", "super", "gentil", "amei",
"adorei", "dispersava")
Using coment %like% bom
or coment %in% bom
have yielded zero-row data frames or errors, although there is a match in the example.
You can try grep
like below
> grep(paste0(bom, collapse = "|"), coment, value = TRUE)
[1] "a professora dispersava demais durante as aulas."
[2] "faltou melhor comunicacao no objetivo do trabalho final."