Если вы не можете обмениваться реальными данными, вы можете создать поддельный набор данных, чтобы сделать запись воспроизводимой.
Если я вас правильно понял, вот что вы можете сделать с lapply
lapply(list_df, function(x) {x$difference <- c(NA, diff(x$growth)); x})
#[[1]]
# growth b difference
#1 3 a NA
#2 8 b 5
#3 4 c -4
#4 7 d 3
#5 6 e -1
#6 1 f -5
#7 10 g 9
#8 9 h -1
#9 2 i -7
#10 5 j 3
#[[2]]
# growth b difference
#1 10 a NA
#2 5 b -5
#3 6 c 1
#4 9 d 3
#5 1 e -8
#6 7 f 6
#7 8 g 1
#8 4 h -4
#9 3 i -1
#10 2 j -1
Способ сделать то же самое tidyverse
будет
library(dplyr)
library(purrr)
map(list_df,. %>% mutate(difference = c(NA, diff(growth))))
ИЛИ
map(list_df,. %>% mutate(difference = growth - lag(growth)))
данные
set.seed(123)
list_df <- list(data.frame(growth = sample(10), b = letters[1:10]),
data.frame(growth = sample(10), b = letters[1:10]))