我有一个列表中的所有数据帧都具有相同的结构 - 在本例中为变量a,b和c。现在我想总结整个列表中值的方法。总结列表中的数据帧的方法
# list of 10 random data frames
n <- 1e1
initSeed <- 1234
set.seed(initSeed)
(seedVec <- sample.int(n = 1e3, size = n, replace = FALSE))
lst <- lapply(1:n, function(i){
set.seed(seedVec[i])
a <- rnorm(24,1,.1)
b <- rnorm(24,2,.2)
c <- rnorm(24,3,.3)
df <- data.frame(a,b,c)
})
我试图用lst %>% summarize_all(mean)
养活dplyr但他不会像列表。下面的公式给出了列表中每个数据帧的含义,但是并不是所有数据帧中这些变量a,b和c的含义。
lapply(1:10, function(n){
lst[n] %>%
data.frame() %>%
summarize_all(mean)
})
,所以我想做出一个新的数据帧与总结输出,以便再次总结一下他们,但失败和我的扩展配方和related answer都被扔Error in lst[[idx]] : subscript out of bounds
这里是我的尝试:
df1 <- as.data.frame(setNames(replicate(3,numeric(0), simplify = FALSE),
letters[1:3]))
lapply(1:10, function(n){
lst[n] %>%
data.frame() %>%
summarize_all(mean) %>%
rbind(df1, lst[n])
})
df1 %>% summarize_all(mean)
我怎么能得到我想要的?
什么应该输出什么样子?如果你想汇总所有的值,你可以通过类似'bind_rows'的方式堆叠数据集,然后使用'summarize_all'。如果你想采用每个数据集的平均值,然后采用这些平均值(如果事情不平衡),可以使用* purrr *中的map_df来进行每个数据集中的初始循环平均,然后使用summarize_all在输出上。 – aosmith
谢谢,再次抛出这个奇怪的错误,但来自@ andrew-gustar的答案带来了解决方案。 – jaySf