R 创建一个函数并查找数据集中的最大值,并使用IF语句查找其行和列的位置&;环路
我需要创建一个名为max.mat()的函数,并使用该函数标识与数据集最大值关联的矩阵中的位置(行和列)。有人告诉我,要创建这个函数,我应该使用两件事:1)一个“if语句”2)一个循环如果你真的需要使用for循环和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运
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