R 中矩阵的索引值?

发布于 2024-08-13 07:20:32 字数 509 浏览 3 评论 0原文

是否有一个函数可以获取矩阵的索引(行号和列号)?

假设我有一个简单的矩阵:

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

例如,是否有一种简单的方法可以返回数字“23”的 c(3, 5) 之类的值?在这种情况下,说 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

Is there a function to get an index (row number and column number) for a matrix?

Suppose that I have a simple matrix:

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

Is there an easy way to get back something like c(3, 5) for the number "23", for instance? In this case, saying which(a==23) just returns 23.

This seems to work but I'm sure that there's a better way:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无边思念无边月 2024-08-20 07:20:32

发布此文章后,查看了 which() 的帮助,找到了答案:arr.ind 参数。

which(a==23, arr.ind=TRUE)
     row col
[1,]   3   5

Just looked at the help for which() after posting this and found the answer: the arr.ind parameter.

which(a==23, arr.ind=TRUE)
     row col
[1,]   3   5
放手` 2024-08-20 07:20:32
m = matrix(c(1:16), nrow = 4, byrow = TRUE)
print("Original Matrix:")
print(m)
result = which(m == max(m), arr.ind=TRUE)
print("Row and column of maximum value of the said matrix:")
print(result)
result = which(m == min(m), arr.ind=TRUE)
print("Row and column of minimum value of the said matrix:")
print(result)
m = matrix(c(1:16), nrow = 4, byrow = TRUE)
print("Original Matrix:")
print(m)
result = which(m == max(m), arr.ind=TRUE)
print("Row and column of maximum value of the said matrix:")
print(result)
result = which(m == min(m), arr.ind=TRUE)
print("Row and column of minimum value of the said matrix:")
print(result)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文