在R中的嵌套列表中查找最大值

在R中的嵌套列表中查找最大值,r,list,loops,nested,nested-lists,R,List,Loops,Nested,Nested Lists,我有一个嵌套列表,如下所示: results <- list() c <- 1 outcomes <- c("Value1", "Value2", "Value3") values <- c(2, 11, 20) for(i in outcomes){ for(p in 1:length(values)){ results[[c]] <- c(outcomes[p], values[p])

我有一个嵌套列表,如下所示:

results <- list()
c <- 1
outcomes <- c("Value1", "Value2", "Value3")
values <- c(2, 11, 20)
for(i in outcomes){
  for(p in 1:length(values)){
    results[[c]]  <- c(outcomes[p], values[p])
    c <- c + 1
  }
}
results <- results[1:3]
>results
[[1]]
[1] "Value1" "2"     

[[2]]
[1] "Value2" "11"    

[[3]]
[1] "Value3" "20"

结果也许这会有所帮助:

#Code
results[which(unlist(lapply(results,function(x) as.numeric(x[2])))==max(unlist(lapply(results,function(x) as.numeric(x[2])))))]
输出:

[[1]]
[1] "Value3" "20" 

我们可以提取
列表
中的第二个元素,
取消列表
,将其转换为
数值
使用
which.max
查找max元素的索引,以提取
列表

results[which.max(as.numeric(unlist(sapply(results, `[`, 2))))]
#[[1]]
#[1] "Value3" "20"    

或者稍微紧凑一些

results[which.max(as.numeric(do.call(rbind, results)[,2]))]
#[[1]]
#[1] "Value3" "20"