2009-12-01 21 views
22

क्या मैट्रिक्स के लिए अनुक्रमणिका (पंक्ति संख्या और कॉलम संख्या) प्राप्त करने के लिए कोई फ़ंक्शन है?आर में मैट्रिक्स के लिए सूचकांक मूल्य?

मान लीजिए कि मैं एक साधारण मैट्रिक्स है:

a <- matrix(1:50, nrow=5) 

वहाँ एक आसान तरीका वापस ग की तरह कुछ पाने के लिए है (3, 5) संख्या "23", उदाहरण के लिए के लिए? इस मामले में, यह कहते हुए which(a==23) सिर्फ रिटर्न 23.

यह काम करने के लिए लगता है, लेकिन मुझे यकीन है कि एक बेहतर तरीका है कि वहाँ हूँ:

matrix.index <- function(a, value) { 
    idx <- which(data.frame(a)==value) 
    col.num <- ceiling(idx/nrow(a)) 
    row.num <- idx - (col.num-1) * nrow(a) 
    return(c(row.num, col.num)) 
} 
> matrix.index(a, 23) 
[1] 3 5 
> matrix.index(a, 50) 
[1] 5 10 

उत्तर

38

बस इस पोस्ट करने के बाद which() के लिए मदद को देखा और जवाब मिला : arr.ind पैरामीटर।

which(a==23, arr.ind=TRUE) 
    row col 
[1,] 3 5 
संबंधित मुद्दे