Я создал воспроизводимый пример того, что вы спрашиваете. Я также предполагаю, что вы можете настроить концепции в этом общем примере в соответствии со своей собственной проблемой. Будет проще, если вы приведете пример своего списка в будущем.
Сначала мы создадим некоторые воспроизводимые данные
a <- c(10,20,30,40)
b <- c(5,10,15,20)
c <- c(20,25,30,35)
df1 <- data.frame(x=a+1,y=b+1,z=c+1)
df2 <- data.frame(x=a,y=b,z=c)
ls1 <- list(df1,df2)
Который выглядит так
print(ls1)
[[1]]
x y z
1 11 6 21
2 21 11 26
3 31 16 31
4 41 21 36
[[2]]
x y z
1 10 5 20
2 20 10 25
3 30 15 30
4 40 20 35
Итак, теперь у нас есть два кадра данных в одном списке. Следующий код должен затем пройтись по столбцам в каждом фрейме данных списка и применить функцию mean () к данным в столбце. Вы можете изменить это на строку, выбрав «1» вместо «2».
df <- do.call("rbind", lapply(ls1, function(x) apply(x,2,mean)))
as.data.frame(df)
print(df)
x y z
1 26 13.5 28.5
2 25 12.5 27.5
Вы должны иметь возможность заменить mean () на любую функцию, которую вы написали для своих данных. Дайте мне знать, если это поможет.