【问题标题】:Get maximum value from all matrices in a list从列表中的所有矩阵中获取最大值
【发布时间】:2012-03-28 14:54:07
【问题描述】:

我已经创建了一个矩阵列表,现在我想获取所有矩阵中行的最大值,如何获取它们?

这是列表的代码:

i <- 1
tryList <- list()
treeList <- list()
accList <- list()

for(t_mtry in 1:40){
  for(t_ntree in 20:300{
    rf <- randomForest(class ~., data=training, mtry=t_mtry, ntree=t_ntree)
    tbl <- table(predicted = predict(rf,evalSet,type="class"),actual=evalSet$class)

    #get the accuracy of the classification as a list
    retVal <- accuracy(tbl)

    tryList <- c(tryList,t_mtry)
    treeList <- c(treeList,t_ntree)
    accList <- c(accList,mean(retVal))
   }
   matrixList[[i]] <- matrix(c(tryList,treeList,accList),length(accList)
   i <- i + 1
   tryList <- list()
   treeList <- list()
   accList <- list()
 }

现在我想从每个矩阵中获取 accList 的最大值。 如果我有一个我使用的矩阵:

lapply(matrix,max)
max(unlist(matrix[,3]))

但是如何将它与列表一起使用?

【问题讨论】:

  • 我认为您的术语可能有点偏离这里。如果您确实对matrix 进行了 lapply,那么您将评估每个元素。您能否提供一个可重现的示例(此示例无法运行,缺少两个右括号并且未声明 library(randomForest))?

标签: r list matrix max


【解决方案1】:

你的问题有点不清楚,反正这里有一些有用的东西:

m1 <- cbind(c(1,2,3),c(7,2,4))
m2 <- cbind(c(-1,19,13),c(21,3,5),c(3,3,0),c(4,5,6))
m3 <- cbind(c(1,2,3,4,5),c(8,18,4,6,7))

mylist <- list(M1=m1,M2=m2,M3=m3)

# get the maximum value for each matrix
lapply(mylist,FUN=max)

# get the global maximum
max(unlist(lapply(mylist,FUN=max)))

# get the maximum value for each row of each matrix
lapply(mylist,FUN=function(x)apply(x,MARGIN=1,FUN=max))


##### OUTPUT #####
> lapply(mylist,FUN=max)
$M1
[1] 7
$M2
[1] 21
$M3
[1] 18

> max(unlist(lapply(mylist,FUN=max)))
[1] 21

> lapply(mylist,FUN=function(x)apply(x,MARGIN=1,FUN=max))
$M1
[1] 7 2 4
$M2
[1] 21 19 13
$M3
[1]  8 18  4  6  7

【讨论】:

  • 如果矩阵包含 NA 值,如何获得最大值?我尝试了您给定的解决方案:max(unlist(lapply(mylist,FUN=max))) 但输出显示不适用。还尝试了max(unlist(lapply(na.omit(mylist),FUN=max)))。你能帮忙吗?
  • 只需将max() 参数na.rm 添加到lapply,例如:lapply(mylist,FUN=max, na.rm=T)
猜你喜欢
  • 1970-01-01
  • 2013-07-31
  • 2019-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多