R 创建一个函数并查找数据集中的最大值,并使用IF语句查找其行和列的位置&;环路

R 创建一个函数并查找数据集中的最大值,并使用IF语句查找其行和列的位置&;环路,r,R,我需要创建一个名为max.mat()的函数,并使用该函数标识与数据集最大值关联的矩阵中的位置(行和列)。有人告诉我,要创建这个函数,我应该使用两件事:1)一个“if语句”2)一个循环如果你真的需要使用for循环和if语句,这是一种方法。但是首先让我们用一堆随机数做一个矩阵 set.seed(100) mymat <- matrix(runif(100), ncol = 10, nrow = 10) set.seed(100) mymat阅读了以下文档:?matrix创建测试矩阵;for运

我需要创建一个名为max.mat()的函数,并使用该函数标识与数据集最大值关联的矩阵中的位置(行和列)。有人告诉我,要创建这个函数,我应该使用两件事:1)一个“if语句”2)一个循环

如果你真的需要使用for循环和if语句,这是一种方法。但是首先让我们用一堆随机数做一个矩阵

set.seed(100)
mymat <- matrix(runif(100), ncol = 10, nrow = 10)
set.seed(100)

mymat阅读了以下文档:
?matrix
创建测试矩阵;
for
运行for循环;
if
构造if语句。构建矩阵后,请阅读
help(“[”)
了解如何访问矩阵元素。这应该足以让您开始学习。是否需要使用IF语句和循环?因为您可以轻松地使用其他函数…或实际函数…无需冗长的介绍。切中要害,最重要的是,提供一个小数据集。它应该是模拟的或是我们的使用
dput
,以及您尝试过的代码进行编辑。无论以何种形状、形式或大小显示一些效果都是受欢迎的。嘿,Stacie,欢迎使用Stack Overflow!请务必查看如何改进此问题及其在此处的接收效果。如果您需要获得最大值,您应该能够编辑此代码以重新编辑把它也转过来。
max.mat <- function(x){
  # iterate through the columns from 1 to the max number
  # of columns
for(i in 1:ncol(x)){
  # iterate through each number in a column
  for(j in 1:nrow(x)){
    # if the jth number in the ith column equals the maximum
    # value of x
    if(x[j,i] == max(x)){
      # return a vector that says what j and i are
      return(c("row" = j, "col" = i))
      # then stop looping through stuff
      stop()
      }
    }
  }
}

max.mat(mymat)
     row col
[1,]   9   4
max.mat.easier <- function(x){
  which(x == max(x), arr.ind = TRUE)
}

max.mat.easier(mymat)
     row col
[1,]   9   4