Considere inicialmente o seguinte código, escrito utilizando a linguagem de programação R: v <- 1:10 i <- 3 f <- 6 Tomando por base esse contexto, assinale a opção que apresenta um código que produz resultado equivalente a: p <- i for (q in (f+1):length(v)) { v[p] <- v[q] p <- p+1 } for (q in p:length(v)) v[q] <- NA length(v) <- p-1
- A)v <- v[c(f)]-v[c(i)]
Errada, porque v[c(f)]-v[c(i)] apenas subtrai dois valores, em vez de remover um intervalo do vetor.
- B)v <- v[-c(i:f)]
Certa, porque v[-c(i:f)] exclui do vetor as posicoes de i ate f, produzindo o mesmo efeito do codigo dado.
- C)v <- v[f:i]
Errada, porque v[f:i] seleciona um trecho do vetor na ordem inversa, sem remover elementos internos.
- D)v <- v[f]-v[i]
Errada, porque v[f]-v[i] faz apenas uma operacao aritmetica entre dois elementos, sem alterar a estrutura do vetor.
- E)v<-v[c(i:f)]
Errada, porque v[c(i:f)] seleciona justamente o intervalo de i ate f, isto e, o trecho que deveria ser removido.
Gabarito: B
A questão explora manipulação de vetores em R, especialmente a ideia de remover um trecho interno e compactar o restante. No código dado, os elementos entre i e f sao descartados, e os elementos que vieram depois sao deslocados para preencher o espaco, sem deixar “buracos” no vetor final. Em R, isso e feito de forma bem direta com indexacao negativa: voce nega o intervalo de posicoes que deseja excluir e o vetor resultante fica apenas com os elementos restantes. O ponto central e perceber que i = 3 e f = 6, entao o trecho removido e o intervalo de posicoes 3 a 6. O codigo equivalente precisa, portanto, construir um novo vetor com todos os elementos exceto esses indices. A alternativa B faz exatamente isso com v <- v[-c(i:f)], que elimina as posicoes de i ate f. Como o intervalo removido e interno, os demais elementos sao preservados na ordem original. As outras alternativas tentam usar subtracao, fatias ou repeticao de indices, mas nao realizam exclusao de trecho. Em R, o uso de indice negativo e um recurso classico e muito cobrado em prova para remover elementos de vetores, data frames e listas. A banca costuma testar esse detalhe porque ele parece simples, mas basta inverter o sinal do indice para mudar completamente o resultado.