which
位於 base
包(package)。 說明
給出邏輯對象的 TRUE
索引,允許數組索引。
用法
which(x, arr.ind = FALSE, useNames = TRUE)
arrayInd(ind, .dim, .dimnames = NULL, useNames = FALSE)
參數
x |
|
arr.ind |
邏輯性;當 |
ind |
整數值索引向量,由 |
.dim |
|
.dimnames |
可選字符列表 |
useNames |
邏輯指示 |
值
如果arr.ind == FALSE
(默認值),整數向量,或雙向量,如果x
是一個長向量, 和length
等於sum(x)
,即到TRUE
輸入x
.
本質上,典型情況下的結果是(1:length(x))[x]
;更一般地說,包括當 x
具有 NA
時,which(x)
是 seq_along(x)[!is.na(x) & x]
加上 names
(當 x
具有時)。
如果 arr.ind == TRUE
和 x
是 array
(具有 dim
屬性),則結果為 arrayInd(which(x), dim(x), dimnames(x))
,即一個矩陣,其每行都是 x
的一個元素的索引;請參閱下麵的示例。
注意
與大多數其他基地不同R這不強製的函數x
邏輯:僅參數typeof
邏輯被接受,其他則給出錯誤。
例子
which(LETTERS == "R")
which(ll <- c(TRUE, FALSE, TRUE, NA, FALSE, FALSE, TRUE)) #> 1 3 7
names(ll) <- letters[seq(ll)]
which(ll)
which((1:12)%%2 == 0) # which are even?
which(1:10 > 3, arr.ind = TRUE)
( m <- matrix(1:12, 3, 4) )
div.3 <- m %% 3 == 0
which(div.3)
which(div.3, arr.ind = TRUE)
rownames(m) <- paste("Case", 1:3, sep = "_")
which(m %% 5 == 0, arr.ind = TRUE)
dim(m) <- c(2, 2, 3); m
which(div.3, arr.ind = FALSE)
which(div.3, arr.ind = TRUE)
vm <- c(m)
dim(vm) <- length(vm) #-- funny thing with length(dim(...)) == 1
which(div.3, arr.ind = TRUE)
作者
Werner Stahel and Peter Holzer (ETH Zurich) proposed the
arr.ind
option.
也可以看看
Logic
、 which.min
表示最小值或最大值的索引,match
表示向量中元素的第一個索引,即,對於標量 a
, match(a, x)
等效於 min(which(x == a))
但效率更高。
相關用法
- R which.min Min() 或 Max() 或第一個 TRUE 或 FALSE 在哪裏?
- R warning 警告信息
- R with 評估數據環境中的表達式
- R weekdays 提取 POSIXt 或日期對象的部分內容
- R write 將數據寫入文件
- R writeLines 將行寫入連接
- R withVisible 返回值及其可見性
- R warnings 打印警告消息
- R file.path 構造文件路徑
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R lapply 對列表或向量應用函數
- R dump R 對象的文本表示
- R Sys.getenv 獲取環境變量
- R rank 樣本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 將文本推回連接
- R strsplit 分割字符向量的元素
- R seq.Date 生成規則的日期序列
- R invisible 將打印模式更改為不可見
- R noquote “無引號”字符串打印類
- R rapply 遞歸地將函數應用於列表
- R basename 操作文件路徑
- R formals 訪問和操縱形式參數
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Which indices are TRUE?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。