在列表中的列表的地图内变异

时间:2016-10-13 15:59:19

标签: r list purrr

如何使用map?

将值g移动到df中的列中
List of 2
 $ f :List of 2
  ..$ df:'data.frame':  50 obs. of  2 variables:
  .. ..$ o: num [1:50] 0.785 0.253 0.228 0.323 0.332 ...
  .. ..$ m: chr [1:50] "A" "N" "A" "N" ...
  .. ..$ g: num [1:50] 0
  ..$ g : num 0
 $ g2:List of 2
  ..$ df:'data.frame':  50 obs. of  2 variables:
  .. ..$ o: num [1:50] 0.0271 0.6264 0.1487 0.2008 0.6946 ...
  .. ..$ m: chr [1:50] "G" "H" "G" "H" ...
  .. ..$ g: num [1:50] 5
  ..$ g : num 5

str之后的预期结果是:

map(aq,~mutate(.$df$g=.$g))

{{1}}不起作用。还有其他想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

与Akrun的评论相同的输出(即一个较少的嵌套级别),基于您的代码:

map(aq, ~ dplyr::mutate(.x$df, g = .x$g))

简单编辑以获得所需的结构:

map(aq, ~ list(df = dplyr::mutate(.x$df, g = .x$g), g = .x$g))

(编辑:根据Misha的评论,这适用于purrr0.2.2.9000)的开发版本,但不适用于当前的CRAN版本(0.2.2)。不知道为什么尚未)。