Questão nº 76
Questão de Fluência em Dados · FGV Receita Federal do Brasil 2023 - Manhã (nº 76)
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")
``` - B```
search_string <- function(lista:list, palavra:string){
return(list of[grep(palavra, lista)])
}
palavras <- ["manga", "banana", "pera", "laranja"]
search_string(palavras, "n")
``` - C```
search_string <- function(lista, palavra){
return(lista[grep(palavra, lista)])
}
palavras <- ["manga", "banana", "pera", "laranja"]
search_string(palavras, "n")
``` - D```
search_string <- function(lista, palavra){
return(lista[grep(palavra, lista)])
}
palavras <- c("manga", "banana", "pera", "laranja")
search_string(palavras, "n")
``` (alternativa correta) - E```
def search_string as function(lista, palavra){
return(list of[grep(palavra, lista)])
}
palavras <- a("manga", "banana", "pera", "laranja")
search_string(palavras, "n")
```
Resposta comentada
Gabarito Alternativa D
Em R, criamos vetores de dados (coleções ordenadas de elementos do mesmo tipo) usando a função `c()` e definimos funções com a palavra-chave `function`. A função `grep()` é usada para encontrar padrões em textos, retornando os índices dos elementos que correspondem ao padrão, que podem ser usados para indexar o vetor original e obter os resultados desejados.
(A) Incorreta: Utiliza sintaxe de definição de função (`def ... as function`) e criação de lista (`[...]`) que são da linguagem Python, não R.
(B) Incorreta: Apresenta declaração de tipos nos parâmetros da função (`lista:list, palavra:string`) e sintaxe de criação de lista (`[...]`) que não são padrão em R, além de `list of[...]` que não é sintaxe R.
(C) Incorreta: Embora a definição da função e a lógica interna estejam corretas para R, a criação do vetor `palavras` usa a sintaxe de lista do Python (`["manga", ...]`) em vez da função `c()` do R, o que causaria um erro. Armadilha da banca: Esta alternativa é muito similar à correta, testando o conhecimento da sintaxe específica de criação de vetores em R versus outras linguagens.
(D) Correta: Esta alternativa apresenta a sintaxe correta para definir uma função em R (`search_string <- function(...)`), a maneira correta de criar um vetor de caracteres em R (`palavras <- c(...)`), e utiliza a função `grep()` para encontrar os índices dos elementos que contêm a `palavra` (neste caso, "n") e, em seguida, usa esses índices para selecionar os elementos correspondentes do vetor `lista`. Embora o resultado exato de `search_string(palavras, "n")` com os dados fornecidos seria `c("banana", "laranja")` (pois "manga" não contém "n"), esta é a única alternativa com a sintaxe R completamente correta para a tarefa proposta.
(E) Incorreta: Utiliza sintaxe de definição de função (`def ... as function`) e criação de lista (`list of[...]`) que são da linguagem Python, não R. Além disso, tenta criar o vetor com `a(...)` em vez de `c()`.
Fonte: FGV Receita Federal do Brasil 2023 - Manhã Auditor-Fiscal da Receita Federal do Brasil (Caderno Tipo 1). Reproduzida para fins de estudo.