作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含列表列表的数据。我想找到最大值。每个double类型数据的值如图所示;
这是我的数据结构;
list(`Cluster 1` = list(Day_1 = list(structure(c(`1` = 0, `2` = 0,
`3` = 0, `4` = 0, `5` = 0, `6` = 0, `7` = 0, `8` = 0, `9` = 0.041,
`10` = 0.673, `11` = 0, `12` = 0.766), .Dim = 12L, .Dimnames = list(
c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
"12"))), structure(c(`1` = 0, `2` = 0, `3` = 0, `4` = 0,
`5` = 0, `6` = 0.041, `7` = 0.673, `8` = 0.766), .Dim = 8L, .Dimnames = list(
c("1", "2", "3", "4", "5", "6", "7", "8")))), Day_2 = list(
structure(c(`1` = 1.07, `2` = 0, `3` = 1.27, `4` = 0.19,
`5` = 0, `6` = 0, `7` = 0, `8` = 0, `9` = 0, `10` = 0, `11` = 0,
`12` = 0), .Dim = 12L, .Dimnames = list(c("1", "2", "3",
"4", "5", "6", "7", "8", "9", "10", "11", "12"))), structure(c(`1` = 1.07,
`2` = 1.27, `3` = 0.19, `4` = 0, `5` = 0, `6` = 0, `7` = 0,
`8` = 0), .Dim = 8L, .Dimnames = list(c("1", "2", "3", "4",
"5", "6", "7", "8"))))), `Cluster 2` = list(Day_3 = list(
structure(c(`1` = 0, `2` = 0, `3` = 0, `4` = 0, `5` = 0,
`6` = 0, `7` = 0, `8` = 0, `9` = 0.19, `10` = 0, `11` = 0,
`12` = 0), .Dim = 12L, .Dimnames = list(c("1", "2", "3",
"4", "5", "6", "7", "8", "9", "10", "11", "12"))), structure(c(`1` = 0,
`2` = 0, `3` = 0, `4` = 0, `5` = 0, `6` = 0.19, `7` = 0,
`8` = 0), .Dim = 8L, .Dimnames = list(c("1", "2", "3", "4",
"5", "6", "7", "8")))), Day_4 = list(structure(c(`1` = 0.521,
`2` = 0.229, `3` = 0, `4` = 0, `5` = 0, `6` = 0, `7` = 0, `8` = 0,
`9` = 0, `10` = 0, `11` = 0, `12` = 0), .Dim = 12L, .Dimnames = list(
c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
"12"))), structure(c(`1` = 0.75, `2` = 0, `3` = 0, `4` = 0,
`5` = 0, `6` = 0, `7` = 0, `8` = 0), .Dim = 8L, .Dimnames = list(
c("1", "2", "3", "4", "5", "6", "7", "8"))))))
我试过这段代码;
nested_lapply <- function(data, fun) {
lapply(data, function(sublist) { lapply(sublist, fun) })
}
但是我收到了这个错误
res<-nested_lapply(out, max)
Error in FUN(X[[i]], ...) : invalid 'type' (list) of argument
Called from: lapply(sublist, fun)
问题补充:
我需要找到最大值。所有 [[ 1 的值]] 以及 [[2]]。
max1<-max(out$Cluster 1
$Day_1[ 1 ], out$Cluster 1
$Day_2[ 1 ], out$Cluster 2
$Day_3[ 1 ], out$Cluster 2
$Day_4[ 1 ])
max2<-max(out$Cluster 1
$Day_1[[2]], out$Cluster 1
$Day_2[[2]], out$集群 2
$Day_3[[2]], out$集群 2
$Day_4[[2]])
最佳答案
我们可以只使用 base R
中的 rapply
它将递归循环三个嵌套的 list
并获得 max
vector
rapply(out, max)
如果我们想要跨越 max
library(dplyr)
library(data.table)
reshape2::melt(out) %>%
group_by(L3) %>%
summarise(value = max(value))
# A tibble: 2 x 2
# L3 value
# <int> <dbl>
#1 1 1.27
#2 2 1.27
也可能是
flatten(out) %>%
transpose %>%
map(reduce, pmax)
#[[1]]
# 1 2 3 4 5 6 7 8 9 10 11 12
#1.070 0.229 1.270 0.190 0.000 0.000 0.000 0.000 0.190 0.673 0.000 0.766
#[[2]]
# 1 2 3 4 5 6 7 8
#1.070 1.270 0.190 0.000 0.000 0.190 0.673 0.766
或单个值
flatten(out) %>%
transpose %>%
map_dbl(reduce, max)
#[1] 1.27 1.27
关于r - 如何将函数应用于 r 中的多个列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61108211/
我是一名优秀的程序员,十分优秀!