我有一个包含大量组的面板数据集,我为每个组计算了拟合值,并且想将所有的拟合值合并到一个新的数据集中。我正在寻找可能的快捷方法以避免手动完成此操作。
以下数据集类似于我正在处理的数据集(尽管在组方面规模要小得多)。
set.seed(999)
dt <- data.frame("Group"=rep((LETTERS[1:10]), each=15),
"Year"=2001:2015,"value"=5+rnorm(150, 3,1))
names(dt)
head(dt)
table(dt$Year, dt$Group)
library(reshape2)
dt_tbl1 <- dcast(dt,Year~Group)
dt_tbl1
library(forecast)
tsMat <- ts(dcast(dt, Year ~ Group), start=2001, freq=1)
dt_ses <- lapply(tsMat, function(x) ses(x))
我需要帮助来自动化以下步骤。将数据框中的所有剩余组添加进去。
dt_tbl2 <- data.frame("Year"=2001:2015,
data.frame(dt_ses$A$fitted),
data.frame(dt_ses$B$fitted),
data.frame(dt_ses$C$fitted))
将新数据集中的变量重命名以与原始组相关
names(dt_tbl2)[2:4] <- c("A_hat", "B_hat", "C_hat")
完成后,dt_tbl2应该与dt_tbl1具有相同的格式。
我尝试使用sapply()和lapply(),但似乎没有什么作用。 谢谢 TCS