将函数应用于嵌套循环(purrr 包?) [英] Apply function to nested loop (purrr package?)
本文介绍了将函数应用于嵌套循环(purrr 包?)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这应该很简单,但我无法解决......
This should be simple, but I can't work it out ...
我想应用一个函数,例如.意味着每个较低的列表,例如.我要回来
I want to apply a function, eg. mean to each of the lower lists, eg. I want to return
$1
$1
$a [1] value_of_mean 1
$1
$a [1] value_of_mean 1
$1
$b [1] value_of_mean 2
$1
$b [1] value_of_mean 2
$2
$2
$a [1] value_of_mean 3
$2
$a [1] value_of_mean 3
$2
$b [1] value_of_mean 4
$2
$b [1] value_of_mean 4
我正在尝试使用 purrr 包
I am trying to use the purrr package
require(purrr)
mylist <- list("1"=list(a=runif(10), b=runif(10)), "2"=list(a=runif(10), b=runif(10)))
map(mylist, mean)
推荐答案
您不必使用 map
两次,因为引入了 modify_depth
来整理两次 map
调用.
You don't have to use map
twice, as modify_depth
was introduced to tidy-up the double map
call.
library(purrr)
set.seed(123)
mylist <- list("1"=list(a=runif(10), b=runif(10)), "2"=list(a=runif(10), b=runif(10)))
modify_depth(mylist, 2, mean)
导致:
> modify_depth(mylist, 2, mean)
$`1`
$`1`$a
[1] 0.5782475
$`1`$b
[1] 0.5233693
$`2`
$`2`$a
[1] 0.6155837
$`2`$b
[1] 0.537858
这个是一样的
mylist %>% map(~ map(.x, mean))
导致:
> mylist %>% map(~ map(.x, mean))
$`1`
$`1`$a
[1] 0.5782475
$`1`$b
[1] 0.5233693
$`2`
$`2`$a
[1] 0.6155837
$`2`$b
[1] 0.537858
这篇关于将函数应用于嵌套循环(purrr 包?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文