在 r 的列表中找到每一行的最大值?
find maximum values for each row in list in r?
我在 r 中有一个列表列表。我想找到每个列表中每一行的最大值。
这是我的数据:
$`01-2020`
$`01-2020`$h1
[1] 5 5 5 1 6 1 6 4 4 2
$`01-2020`$h2
[1] 5 1 7 0 8
$`02-2020`
$`02-2020`$h1
[1] 0 0 0 0 1 2 1 1 1
$`02-2020`$h2
[1] 10 8 7 5 4
及其结构:
data<-list(`01-2020` = list(h1 = c(5, 5, 5, 1, 6, 1, 6, 4, 4, 2), h2 = c(5,
1, 7, 0, 8)), `02-2020` = list(h1 = c(0, 0, 0, 0, 1, 2, 1, 1,
1), h2 = c(10, 8, 7, 5, 4)))
我想获得这些输出值:
$`01-2020`
$`01-2020`$h1
[1] 6
$`01-2020`$h2
[1] 8
$`02-2020`
$`02-2020`$h1
[1] 2
$`02-2020`$h2
[1] 10
而且我还看到这样的输出:
但我想看到的是像下面的例子。我的意思是,没有蓝色向下箭头。也喜欢 double[2x1]
,而不是单独的 double[1]
行:
我们可以使用rrapply
library(rrapply)
rrapply(data, f = max)
-输出
#$`01-2020`
#$`01-2020`$h1
#[1] 6
#$`01-2020`$h2
#[1] 8
#$`02-2020`
#$`02-2020`$h1
#[1] 2
#$`02-2020`$h2
#[1] 10
或如评论中 @27 ϕ 9
所建议,base R
替代方案是 rapply
rapply(data, max, how = "list")
或者另一个选项是 base R
的嵌套 lapply
lapply(data, function(x) lapply(x, max))
或者正确获取结构
out <- lapply(data, function(x) unname(sapply(x, max)))
我在 r 中有一个列表列表。我想找到每个列表中每一行的最大值。
这是我的数据:
$`01-2020`
$`01-2020`$h1
[1] 5 5 5 1 6 1 6 4 4 2
$`01-2020`$h2
[1] 5 1 7 0 8
$`02-2020`
$`02-2020`$h1
[1] 0 0 0 0 1 2 1 1 1
$`02-2020`$h2
[1] 10 8 7 5 4
及其结构:
data<-list(`01-2020` = list(h1 = c(5, 5, 5, 1, 6, 1, 6, 4, 4, 2), h2 = c(5,
1, 7, 0, 8)), `02-2020` = list(h1 = c(0, 0, 0, 0, 1, 2, 1, 1,
1), h2 = c(10, 8, 7, 5, 4)))
我想获得这些输出值:
$`01-2020`
$`01-2020`$h1
[1] 6
$`01-2020`$h2
[1] 8
$`02-2020`
$`02-2020`$h1
[1] 2
$`02-2020`$h2
[1] 10
而且我还看到这样的输出:
但我想看到的是像下面的例子。我的意思是,没有蓝色向下箭头。也喜欢 double[2x1]
,而不是单独的 double[1]
行:
我们可以使用rrapply
library(rrapply)
rrapply(data, f = max)
-输出
#$`01-2020`
#$`01-2020`$h1
#[1] 6
#$`01-2020`$h2
#[1] 8
#$`02-2020`
#$`02-2020`$h1
#[1] 2
#$`02-2020`$h2
#[1] 10
或如评论中 @27 ϕ 9
所建议,base R
替代方案是 rapply
rapply(data, max, how = "list")
或者另一个选项是 base R
lapply
lapply(data, function(x) lapply(x, max))
或者正确获取结构
out <- lapply(data, function(x) unname(sapply(x, max)))