當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R subset 向量、矩陣和 DataFrame 的子集化


R語言 subset 位於 base 包(package)。

說明

返回滿足條件的向量、矩陣或 DataFrame 的子集。

用法

subset(x, ...)

## Default S3 method:
subset(x, subset, ...)

## S3 method for class 'matrix'
subset(x, subset, select, drop = FALSE, ...)

## S3 method for class 'data.frame'
subset(x, subset, select, drop = FALSE, ...)

參數

x

要子集化的對象。

subset

指示要保留的元素或行的邏輯表達式:缺失值被視為 false。

select

表達式,指示從 DataFrame 中選擇的列。

drop

傳遞給[ 索引運算符。

...

要傳遞給其他方法或從其他方法傳遞的進一步參數。

細節

這是一個通用函數,為矩陣、數據幀和向量(包括列表)提供了方法。包和用戶可以添加更多方法。

對於普通向量,結果隻是 x[subset & !is.na(subset)]

對於數據幀,subset 參數作用於行。請注意,subset 將在 DataFrame 中進行計算,因此列可以(按名稱)引用為表達式中的變量(請參閱示例)。

select 參數僅適用於數據幀和矩陣的方法。它的工作原理是首先將選擇表達式中的列名稱替換為 DataFrame 中相應的列號,然後使用生成的整數向量對列進行索引。這允許使用標準索引約定,以便可以輕鬆指定列範圍,或者可以刪除單個列(請參閱示例)。

drop 參數傳遞給矩陣和數據幀的索引方法:請注意,矩陣的默認值與索引的默認值不同。

子集化後因子可能有空水平;未使用的級別不會自動刪除。有關從數據幀中刪除所有未使用級別的方法,請參閱droplevels

類似於 x 的對象僅包含選定的元素(對於向量)、行和列(對於矩陣或 DataFrame )等。

警告

這是一個旨在交互使用的便利函數。對於編程,最好使用標準子集函數,例如 [ ,特別是參數 subset 的非標準評估可能會產生意想不到的後果。

例子

subset(airquality, Temp > 80, select = c(Ozone, Temp))
subset(airquality, Day == 1, select = -Temp)
subset(airquality, select = Ozone:Wind)

with(airquality, subset(Ozone, Temp > 80))

## sometimes requiring a logical 'subset' argument is a nuisance
nm <- rownames(state.x77)
start_with_M <- nm %in% grep("^M", nm, value = TRUE)
subset(state.x77, start_with_M, Illiteracy:Murder)
# but in recent versions of R this can simply be
subset(state.x77, grepl("^M", nm), Illiteracy:Murder)

作者

Peter Dalgaard and Brian Ripley

也可以看看

[transform droplevels

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Subsetting Vectors, Matrices and Data Frames。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。