r-对列表中数据帧内的每个嵌套数据帧应用函数
我有一个要应用函数的结构,但无法使用r-对列表中数据帧内的每个嵌套数据帧应用函数,r,list,dataframe,nested,purrr,R,List,Dataframe,Nested,Purrr,我有一个要应用函数的结构,但无法使用purrr::map正确地获得它 列表中有两个嵌套的数据帧。函数需要应用于嵌套数据帧的所有元素。要复制数据结构,请执行以下操作: df1 <- data.frame(a = c(1,1,2,2,3,3), b = c(1,2,3,4,5,6)) df1 <- df1 %>% group_by(a) %>% nest() df2 <- data.frame(m = c(1,1,1,2
purrr::map
正确地获得它
列表中有两个嵌套的数据帧。函数需要应用于嵌套数据帧的所有元素。要复制数据结构,请执行以下操作:
df1 <- data.frame(a = c(1,1,2,2,3,3),
b = c(1,2,3,4,5,6))
df1 <- df1 %>%
group_by(a) %>%
nest()
df2 <- data.frame(m = c(1,1,1,2,3,3),
n = c(6:11))
df2 <- df2 %>%
group_by(m) %>%
nest()
ls1 <- list(df1,df2)
这不可能完成任务。用“purrr”解决这个问题的想法是理想的,但任何想法都是受欢迎的。我不知道这是否是最好的解决方案,但它应该可以做到:
library(purrr)
map(ls1, function(x) {
map(x, mean)
})
# [[1]]
# [[1]]$a
# [1] 2
#
# [[1]]$b
# [1] 3.5
#
#
# [[2]]
# [[2]]$m
# [1] 1.833333
#
# [[2]]$n
# [1] 8.5
基本上我嵌套了两个map
,如您所见。请记住,purr
使您能够通过一些变量(如map\u df
或map\u dbl
)更好地控制输出,这与一些*apply
不同
library(purrr)
map(ls1, function(x) {
map(x, mean)
})
# [[1]]
# [[1]]$a
# [1] 2
#
# [[1]]$b
# [1] 3.5
#
#
# [[2]]
# [[2]]$m
# [1] 1.833333
#
# [[2]]$n
# [1] 8.5