Utilizando a Linguagem R tem-se um objeto x como consta a seguir. x ## [1] 1 3 4 3 4 <NA> ## Levels: 1 3 4 is.factor(x) ## [1] TRUE O comando que resulta na soma dos elementos numéricos de x é:
- A)sum(as.numeric(as.character(x)), na.rm = TRUE);
Correta: converte os niveis do fator para texto, depois para numeros, e soma ignorando o NA com na.rm = TRUE.
- B)sum(x);
Incorreta: sum(x) nao funciona corretamente para factor, porque o objeto nao guarda os valores numericos de forma direta.
- C)sum(as.numeric(x), na.rm = TRUE);
Incorreta: as.numeric(x) devolve os codigos internos do fator, nao os valores 1, 3 e 4 mostrados nos niveis.
- D)sum(as.numeric(x), na.rm = FALSE);
Incorreta: alem de continuar usando os codigos internos do fator, na.rm = FALSE nao trata o NA.
- E)sum(x[-5]).
Incorreta: remover um elemento nao resolve o problema principal, que e o tipo factor; ainda assim nao vira soma numerica valida.
Gabarito: A
Aqui o ponto central eh lembrar que fator no R nao e numero de verdade: ele guarda categorias e internamente usa codigos. Neste exemplo, os valores parecem 1, 3 e 4, mas o objeto e um factor, entao voce nao pode somar direto como se fosse um vetor numerico comum. Primeiro, voce precisa transformar o fator em texto com as.character(x) e so depois converter para numero com as.numeric(...).