我是R的相对新手,并且已经在多个矩阵上反复执行功能。最近,我开始使用lapply简化编码。
因此,我现在有一个包含六个矩阵的列表,每个矩阵具有相同的维数。我已经成功构建了自己的函数并将其应用于矩阵:
matrixlist.new <- lapply(matrixlist.old,Mycustomfunction)
但是,尽管阅读了有关该主题的内容,但我仍在努力使一个简单的现有R函数在lapply中工作。
我现在的具体问题是,我想将每个矩阵的第三列中的最大值提取到一个新列表中,该列表中的每个原始矩阵中的每个矩阵都有一个值。
如果我有一个矩阵,代码将是:
maxofcol3 <- max(matrix[,3])
但是我如何将这个简单的函数组合到lapply中而不将这个简单的代码变成一个自定义函数(我可以做,但是看来这不是最简单的方法)?
我尝试了各种各样的组合,但是无法解决这个问题……
感谢您的帮助!
答案 0 :(得分:0)
因为我们喜欢可复制的示例...
matrixlist.old <- rep(list(matrix(data=rnorm(9),3)),times=3)
lapply(matrixlist.old,function(x) max(x[,3]))
#> [[1]]
#> [1] 0.828354
#>
#> [[2]]
#> [1] 0.828354
#>
#> [[3]]
#> [1] 0.828354
sapply(matrixlist.old,function(x) max(x[,3]))
#> [1] 0.828354 0.828354 0.828354
由reprex软件包(v0.2.1)创建于2019-02-28