我有一個列表中的所有數據幀都具有相同的結構 - 在本例中爲變量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