Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在TIBLE的不同级别应用函数_R_Tidyverse_Purrr_Tibble - Fatal编程技术网

R 在TIBLE的不同级别应用函数

R 在TIBLE的不同级别应用函数,r,tidyverse,purrr,tibble,R,Tidyverse,Purrr,Tibble,我有以下几点: library(tidyverse) set.seed(1234) df <- tibble( x1 = letters[1:2], y1 = list( tibble( x2 = letters[3:4], y2 = list( tibble( x3 = seq(1, 100, 1), y3 = rnorm(100) ) ) )

我有以下几点:

library(tidyverse)

set.seed(1234)

df <- tibble(
  x1 = letters[1:2],
  y1 = list(
    tibble(
      x2 = letters[3:4],
      y2 = list(
        tibble(
          x3 = seq(1, 100, 1),
          y3 = rnorm(100)
        )
        )
      )
    )
)
库(tidyverse)
种子集(1234)

df您需要找到要应用函数的级别(我通过括号索引来实现),然后应用函数。我希望这可以转移到你需要做的事情上

> df[["y1"]][[1]][[2]] %>% lapply(., function(x){mean(x$y3)})

[[1]]
[1] 0.04124318

[[2]]
[1] 0.04124318

你能不能快点下来

 df %>% unnest() %>% unnest() %>% 
   group_by(x2) %>% 
   summarise(mean(y3))

# A tibble: 2 x 2
  x2    `mean(y3)`
  <chr>      <dbl>
1 c         -0.157
2 d         -0.157
df%>%unest()%%>%unest()%%>%
分组依据(x2)%>%
总结(平均值(y3))
#一个tibble:2x2
x2`平均值(y3)`
1c-0.157
2d-0.157
不确定您希望最终数据帧的外观如何,但这里有另一个建议

 df %>% unnest() %>% 
   mutate(y3.average = map(y2, ~mean(.$y3)) ) %>% 
   unnest(y3.average)

# A tibble: 4 x 4
  x1    x2    y2                 y3.average
  <chr> <chr> <list>                  <dbl>
1 a     c     <tibble [100 × 2]>     -0.157
2 a     d     <tibble [100 × 2]>     -0.157
3 b     c     <tibble [100 × 2]>     -0.157
4 b     d     <tibble [100 × 2]>     -0.157
df%>%unest()%>%
变异(y3.average=map(y2,~mean(.$y3)))%>%
不合理(y3.平均值)
#一个tibble:4x4
x1 x2 y2 y3.5平均值
1a c-0.157
2 a d-0.157
3 b c-0.157
4bd-0.157

使用提供的数据,我无法复制您提供的答案。