R LanguageSubconjunto


Introducción

Dado un objeto R, podemos requerir un análisis por separado para una o más partes de los datos contenidos en él. El proceso de obtención de estas partes de los datos de un objeto dado se llama subsetting .

Observaciones

Valores faltantes:

Los valores faltantes ( NA s) utilizados en la subcontratación con [ return NA desde un índice de NA

elige un elemento desconocido y devuelve NA en el elemento correspondiente.

El tipo de NA "predeterminado" es "lógico" ( typeof(NA) ), lo que significa que, como cualquier vector "lógico" utilizado en la subconjunto, se reciclará para que coincida con la longitud del objeto subcontratado. Entonces x[NA] es equivalente a x[as.logical(NA)] que es equivalente a x[rep_len(as.logical(NA), length(x))] y, en consecuencia, devuelve un valor faltante ( NA ) para cada elemento de x . Como ejemplo:

x <- 1:3
x[NA]
## [1] NA NA NA

Mientras se indexa con "numérico" / "entero", NA elige un solo elemento de NA (para cada NA en el índice):

x[as.integer(NA)]
## [1] NA

x[c(NA, 1, NA, NA)]
## [1] NA  1 NA NA

Subconjunto fuera de límites:

El [ operador, con un argumento pasado, permite índices que son > length(x) y devuelve NA para vectores atómicos o NULL para vectores genéricos. Por el contrario, con [[ y cuando [ se pasan más argumentos (es decir, subconjunto de objetos fuera de límites con length(dim(x)) > 2 ) se devuelve un error:

(1:3)[10]
## [1] NA
(1:3)[[10]]
## Error in (1:3)[[10]] : subscript out of bounds
as.matrix(1:3)[10]
## [1] NA
as.matrix(1:3)[, 10]
## Error in as.matrix(1:3)[, 10] : subscript out of bounds
list(1, 2, 3)[10]
## [[1]]
## NULL
list(1, 2, 3)[[10]]
## Error in list(1, 2, 3)[[10]] : subscript out of bounds

El comportamiento es el mismo cuando se subcontrata con vectores de "caracteres", que no coinciden en el atributo "nombres" del objeto, también:

c(a = 1, b = 2)["c"]
## <NA> 
##   NA 
list(a = 1, b = 2)["c"]
## <NA>
## NULL

Temas de ayuda:

Ver ?Extract para más información.

Subconjunto Ejemplos relacionados