R語言中,如何查詢陣列在陣列 矩陣中的位置?

時間 2021-06-07 00:46:56

1樓:王帥

indexOf=function(value, arr)

indexOf('Mono', c('B', 'MonoལCD8 T')) # 2

2樓:及年歲之未晏

> m <- matrix(c(1,2,4,2,3,5,4,9), ncol = 2)

>> m[,1] [,2]

[1,] 1 3

[2,] 2 5

[3,] 4 4

[4,] 2 9

> y<-c(2,5)

> Reduce(intersect, list(which(m[,1]==y[1]),which(m[,2]==y[2])))

[1] 2

3樓:

無邀自答:)

第乙個問題,可以利用match函式。簡單解釋一下函式。mach(x,y)函式返回的是x中元素在y中的位置,如果沒有發現返回NA,或者裡面引數nomatch=0使其返回值為0。

這裡也介紹一下與match函式有些類似的函式:is.element和%in%函式。

這兩個函式均返回乙個邏輯向量,表示x中的元素是否在y中找到。

第二個問題,沒發現有現成的函式可以實現。因為通常這樣的定位是通過主鍵來執行的,所以這樣的問題比較少。但是樓主可以利用上面提到的函式對兩列分別進行匹配,然後利用邏輯運算來得到最後的結果。

4樓:

第乙個問題,單行的還真沒怎麼遇到過。應該正規表示式一下就行了。

第二個問題,如下:

a <- matrix(c(1,3,2,5,4,4,2,9),ncol=2,byrow=T) #製表

which(a == c(2,5), arr.ind=T) #把which第二個引數開啟就行。

希望幫到你。

5樓:任坤

> y <- c(1,3,3)

[1] 2

> m[,1] [,2]

[1,] 1 3

[2,] 2 5

[3,] 4 4

[4,] 2 9

> y <- c(2,5)

[1] 2

上述都用了

function(row) all(row == y))這樣的匿名函式,意思是類似的,就是當前遍歷到的那塊資料和需要找的資料來比較返回是否是要找的資料。這裡的比較是簡單的 atomic equal ,用 == 表示,會出現型別不同時強制轉換型別;需要更嚴格的比較可以用 identical 或者直接先判斷資料來源型別與要找的是否相同。

C語言中多維陣列是否慢於一維陣列?

土地測量員 對於在全域性或者棧上分配的多維陣列 也就是位址是連續的 都可以看成是一維陣列模擬出來的,要訪問某個元素肯定存在著計算偏移量的過程,不過是交給編譯器幫你來完成這個過程了 其實可以看成語法糖的樣子?所以它比起一維是要慢一點。不過很多時候,某些東西從邏輯上來講就是多維的,你用一維的思路無法解決...

C 語言中指標陣列和陣列指標 函式指標 指向函式的指標等等該怎麼理解?

ga6840 direct declarator IDENTIFIER declarator direct declarator direct declarator assignment expr direct declarator declarator direct declarator poin...

C語言中有沒有3維陣列或者更高維的陣列?

沐雨澄風 c語言事存在三維陣列的 比如char s 3 4 1024 代表乙個三行四列的每乙個元素都是乙個字串的乙個陣列。更高維不知道hh 北極 首先 有三維或者更高維度的陣列,C語言規範中沒有指定最高可以到多少,翻了一遍C99沒有找到類似的規定。用GCC實驗了一下,GCC不檢測維數多少,而是限制陣...