transcriptomics tecnica rna ncbi illumina fundamento definicion and r missing-data

tecnica - ¿Cuál es la diferencia entre<NA> y NA?



rna sequencing and analysis (2)

Cuando se trata de factors , cuando NA está envuelto en corchetes angulares ( <NA> ), eso indica que de hecho es NA.

Cuando es NA sin corchetes, entonces no es NA, sino un factor apropiado cuya etiqueta es "NA"

# Note a ''real'' NA and a string with the word "NA" x <- factor(c("hello", NA, "world", "NA")) x [1] hello <NA> world NA Levels: hello NA world <~~ The string appears as a level, the actual NA does not. as.numeric(x) [1] 1 NA 3 2 <~~ The string has a numeric value (here, 2, alphabetically) The NA''s numeric value is just NA

Editar para responder la pregunta de @ Arun:

R simplemente está tratando de distinguir entre una cadena cuyo valor son las dos letras "NA" y un valor real que falta, NA Por lo tanto, la diferencia que ve al mostrar df frente a df$y . Ejemplo:

df <- data.frame(x=1:4, y=c("a", NA_character_, "c", "NA"), stringsAsFactors=FALSE)

Tenga en cuenta los dos estilos diferentes de NA:

> df x y 1 1 a 2 2 <NA> 3 3 c 4 4 NA

Sin embargo, si miramos solo ''df $ y''

[1] "a" NA "c" "NA"

Pero, si eliminamos las comillas (similar a lo que vemos cuando imprimimos un data.frame a la consola):

print(df$y, quote=FALSE) [1] a <NA> c NA

Y así, una vez más tenemos la distinción de NA través de los corchetes en ángulo.

Tengo un factor llamado SMOKE con niveles "Y" y "N". Los valores faltantes fueron reemplazados por NA (del nivel inicial "NULL"). Sin embargo, cuando veo el factor, obtengo algo como esto:

head(SMOKE) N N <NA> Y Y N Levels: Y N

¿Por qué R muestra NA como <NA> ? Y hay una diferencia?


Es solo la forma en que R muestra NA en un factor:

> as.factor(NA) [1] <NA> Levels: > > f <- factor(c(1:3, NA)) > levels(f) [1] "1" "2" "3" > f [1] 1 2 3 <NA> Levels: 1 2 3 > is.na(f) [1] FALSE FALSE FALSE TRUE

Se supone que este es un medio por el cual uno diferenciaría entre NA y "NA" en la forma en que se imprime un factor, ya que se imprime sin las comillas, incluso para las etiquetas / niveles de caracteres:

> f2 <- factor(c("NA",NA)) > f2 [1] NA <NA> Levels: NA > is.na(f2) [1] FALSE TRUE