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
我正在尝试将Zoo的rollmean函数应用于此数据帧列表中的每个“ Y”列。我已经尝试过lapply,但没有成功,似乎无论我以哪种方式旋转它,都无法绕开指定要应用到的数据框。
这是数据框之一
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))
for循环?也没有成功
For (i in list_of_df) {roll_mean1 <- rollmean(Sub1, 2)
Exp
}
虽然很明显,但是我一般对编码还是很陌生的,不胜感激。在我看来,即使它确实起作用了,但被平均的列也将比其余数据帧长一个值;我将如何解决?
像这样使用lapply
:
lapply(list_of_df, rollmean, 2)