reprod:
df1 <- data.frame(X = c(0:9), Y = c(10:19))
df2 <- data.frame(X = c(0:9), Y = c(10:19))
df3 <- data.frame(X = c(0:9), Y = c(10:19))
list_of_df <- list(A = df1, B = df2, C = df3)
list_of_df
Я пытаюсь применить функцию rollmean из zoo к каждому столбцу 'Y' в этом списке фреймов данных. Я попытался выполнить безуспешно, кажется, что независимо от того, каким образом я его раскручиваю, нет способа обойти, указав тот фрейм данных, к которому вы хотите применить в какой-то момент.
Это делает один из фреймов данных
roll_mean <- rollmean(list_of_df$A, 2)
roll_mean
очевидно, что это не работает:
roll_mean1 <- rollmean(list_of_df, 2)
roll_mean1
Я также пробовал это: подмножество (может не быть необходимым)
Sub1 <- lapply(list_of_df, "[", 2)
roll_mean1 <- rollmean(Sub1, 2)
roll_mean1
там нет кажется, способ сделать это без указания конкретного кадра данных в функции rollmean
lapply(list_of_df), function(x) rollmean(list_of_df, 2))
для l oop? также безуспешно
For (i in list_of_df) {roll_mean1 <- rollmean(Sub1, 2)
Exp
}
Излагаю очевидное, но я очень новичок в кодировании в целом и буду признателен за некоторые советы. Мне пришло в голову, что, даже если бы это работало, усредненный столбец был бы на одно значение длиннее, чем остальная часть кадра данных; как бы мне обойти это?