A) Em quais situações são formados os NA e os NaN quando da importação de dados?
Na importação, os NA
s em geral vêm das células vazias da tabela. Algumas funções de importação também permitem você especificar quais valores nos dados devem ser transformado em NA
na importação.
O NULL
não é gerado na importação. Ele é um valor especial utilizado na lógica de programação em R e na maioria das linguagens.
B) O NULL é aceito na criação do vetor, mas de fato não entra no vetor. Por que isso acontece? Por que não consigo inserir um NULL como um elemento do vetor?
O NULL
representa, no R, a ausência de valor. Algumas funções podem receber esse valor em seus argumentos e têm um comportamento especial reservado para ele.
No caso da função c()
, que cria vetores, ela simplesmente ignora os NULL
s, como se eles fossem “posições vazias”. Isso pode ser útil se você estiver criando um vetor em um processo iterativo e, em alguns dos passos, não é gerado nenhum valor para ser guardado no vetor. Nesse caso, se você não quiser passar um NA para o vetor, você pode simplesmente passar NULL e então esse passo não seria contado no vetor.
C) Se NULL é vazio e é representado por 0, por que não consigo montar um vetor de 0 a 4 usando NULL:4?
O NULL
não é representado por 0. O número 0 é um valor. O NULL
é a ausência de qualquer tipo de valor.
D) É possível criar NA? Como? Porque “as.na” não funciona?
Sim. O nome NA
é reservado no R. Basta fazer a <- NA
e o objeto a
será um NA
.
E) No código c(1:3, , 4:5, ,8:10)
eu esperava que no espaço vazio ocorresse o NA. Por que não ocorreu?
O código c(1:3, , 4:5, ,8:10)
retorna o erro:
Error in c(1:3, , 4:5, , 8:10) : argument 2 is empty
.
A função c()
não permite passar um argumento vazio. Para criar um NA
nessas posições, basta rodar: c(1:3, NA, 4:5, NA, 8:10)
.
F) No código data.frame(c(1:3, , 4:5, ,8:10))
, eu esperava que espaço vazio gerasse uma linha no Data Frame. Por que isso não aconteceu?
A explicação é análoga à do item E.