No contexto da linguagem R, assinale o código que, quando executado, exibe o resultado a seguir. "manga" "banana" "laranja"
- A)def search_string as function (lista, palavra){ return(list of[grep(palavra, lista)]) } palavras <- ["manga", "banana", "pera", "laranja"] search_string(palavras, "n")
Errada, porque mistura pseudocódigo com sintaxe inexistente em R e ainda usa uma construção que não cria vetor corretamente.
- B)search_string <- function(lista:list, palavra:string){ return(list of[grep(palavra, lista)]) } palavras <- ["manga", "banana", "pera", "laranja"] search_string(palavras, "n")
Errada, porque R não usa tipos escritos como lista:string nesse formato e a expressão apresentada não é sintaxe válida da linguagem.
- C)search_string <- function(lista, palavra){ return(lista[grep(palavra, lista)]) } palavras <- ["manga", "banana", "pera", "laranja"] search_string(palavras, "n")
Errada, porque apesar de a lógica do filtro estar próxima, o vetor foi escrito com colchetes, o que não é a forma correta de criar vetores em R.
- D)search_string <- function(lista, palavra){ return(lista[grep(palavra, lista)]) } palavras <- c("manga", "banana", "pera", "laranja") search_string(palavras, "n")
Certa, porque define a função em sintaxe válida, cria o vetor com c() e usa grep() para selecionar os elementos que contêm a letra informada.
- E)def search_string as function(lista, palavra){ return(list of[grep(palavra, lista)]) } palavras <- a("manga", "banana", "pera", "laranja") search_string(palavras, "n")
Errada, porque traz pseudocódigo e nomes de função inexistentes em R, além de usar a criação de vetor de modo incorreto.
Gabarito: D
Nesta questão, o ponto central é entender como a função grep() funciona em R. Ela procura um padrão dentro de um vetor de strings e devolve as posições dos elementos que casam com o texto pesquisado. Aqui, o padrão "n" aparece em "manga"? Não. Em "banana"? Sim. Em "pera"? Não. Em "laranja"? Sim, por causa do "n". Então a ideia é filtrar o vetor e manter apenas os itens que contêm essa letra. Em R, para criar um vetor de texto, você usa c(), e não colchetes como em outras linguagens. Assim, palavras <- c("manga", "banana", "pera", "laranja") é a forma correta. Depois, a expressão lista[grep(palavra, lista)] seleciona exatamente os elementos cujas posições foram encontradas por grep(). Por isso o gabarito é a alternativa D: ela usa a sintaxe correta de função, cria o vetor com c(), e aplica grep() para retornar os elementos com a letra "n". O resultado exibido será "manga" "banana" "laranja". Em concursos, a banca adora misturar sintaxe de R com jeitão de pseudocódigo de outras linguagens para ver quem escorrega no básico. Resumo de prova: grep() encontra posições; [] filtra o vetor; c() monta o vetor. Se você lembrar dessa trinca, metade da questão já foi para o saco do examinador.