Looking for r Keywords? Try Ask4Keywords

R LanguageSubsetting


Einführung

In Anbetracht eines R-Objekts benötigen wir möglicherweise eine separate Analyse für einen oder mehrere Teile der darin enthaltenen Daten. Das subsetting dieser Teile der Daten von einem bestimmten Objekt wird als subsetting .

Bemerkungen

Fehlende Werte:

Fehlende Werte ( NA ), die bei der Subsetting mit [ return NA seit einem NA Index verwendet werden

wählt ein unbekanntes Element aus und gibt NA im entsprechenden Element zurück.

Die „Standard“ Typ von NA ist „logische“ ( typeof(NA) ) , was bedeutet , dass, da jede „logische“ Vektor in subsetting verwendet, um die Länge des subsetted Objekt übereinstimmen recycelt wird. Also ist x[NA] äquivalent zu x[as.logical(NA)] was äquivalent zu x[rep_len(as.logical(NA), length(x))] und folglich einen fehlenden Wert ( NA ) zurückgibt. für jedes Element von x . Als Beispiel:

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

Während der Indizierung mit "numerisch" / "Ganzzahl" wählt NA ein einzelnes NA Element aus (für jede NA im Index):

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

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

Subsetting außerhalb der Grenzen:

Der Operator [ mit einem übergebenen Argument ermöglicht Indizes, die > length(x) und gibt NA für Atomvektoren oder NULL für generische Vektoren zurück. Im Gegensatz dazu wird bei [[ und wenn [ mehr Argumente übergeben werden (dh Objekte außerhalb der Grenzen mit length(dim(x)) > 2 ) ein Fehler zurückgegeben:

(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

Das Verhalten ist beim Subsetting mit "Zeichen" -Vektoren gleich, die auch im Attribut "names" des Objekts nicht übereinstimmen:

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

Hilfethemen:

Siehe ?Extract für weitere Informationen.

Subsetting Verwandte Beispiele