[英]Search node js array for partial match with variable, return index or value
[英]R: return array index of partial string match
假設我有一個10x10的矩陣,其中填充了1:100。 我想搜索所有以“ 0”結尾的數字,並且我想要它們的[i,j]
索引號。 我嘗試了which(..., arr.ind=T)
,但是找不到與之配合使用的函數。 我也嘗試了grep('0$', ...)
但它只返回矩陣的單個索引作為向量。 我想可以將該數字轉換為二進制索引,但是有沒有更簡單的方法?
x <- t(matrix(1:100,nrow=10,ncol=10))
# Output:
# [1,] 1 10
# [2,] 2 10
# ...
# [10,] 10 10
我們可以將grepl
輸出轉換為與原始'x'具有相同dim
的matrix
,然后將which
與arr.ind=TRUE
。
which(`dim<-`(grepl('0$', x), dim(x)), arr.ind=TRUE)
# row col
# [1,] 1 10
# [2,] 2 10
# [3,] 3 10
# [4,] 4 10
# [5,] 5 10
# [6,] 6 10
# [7,] 7 10
# [8,] 8 10
# [9,] 9 10
#[10,] 10 10
或者在不改變dim
,我們得到的grepl
輸出作為一個logical
向量,否定( !
),這樣真亦假和假為真,與原來的矩陣相乘得到的輸出matrix
。 這還將替換以'0'結尾的'x'中的值為0。然后再次取反( !
),以使0
轉換為TRUE,所有其他值轉換為FALSE。 使用which
,我們得到對應於TRUE值的索引。
which(!x*(!(grepl('0$', x))), arr.ind=TRUE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.