【问题标题】:Loop in R to find the max of a matrix [closed]在R中循环以找到矩阵的最大值[关闭]
【发布时间】:2020-01-05 15:54:23
【问题描述】:

你好,我有一个 3 x 2 的年龄和体重。

我必须用循环找到年龄和体重的最大值。

有人可以帮帮我吗?

【问题讨论】:

标签: r loops matrix


【解决方案1】:

R 中使用循环执行此操作不是通常的处理方式,但这是一种使用 for 循环实现 colmax 的方法:

set.seed(1)
# matrix
m <- matrix(rnorm(6), nrow = 3)
# storage for colmax
l <- NULL
# for loop across columns
for( i in 1:ncol(m)){
  l[i] <- max(m[,i])
}
# colmax
l
[1] 0.1836433 1.5952808



【讨论】:

    【解决方案2】:

    你不需要循环 R 有向量化函数

    sample_matrix <- matrix(c(30,22,40,70,80,50),nrow = 3)
    
    
    apply(sample_matrix,MARGIN = 2,FUN = max)
    #> [1] 40 80
    

    reprex package (v0.3.0) 于 2020-01-05 创建

    【讨论】:

    • 我们的老师在作业中写道,我们必须用循环来完成......
    • 嗨@Bruno,有点常见的误解。 apply() 函数未矢量化。你可以在这里阅读:R Inferno 或在这个很棒的 SO 帖子中:Is the “*apply” family really not vectorized?
    • @Base_R_Best_R 这真的很有趣,我正在尝试编写更少的 tidyverse 代码,这是我的教授在 2017 年推荐的一本书,我想我应该多加注意。我知道 ColMeans 应该被矢量化......好吧,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 2020-11-29
    • 2021-05-24
    • 2021-02-08
    • 2020-05-27
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多