R中通过聚合函数的循环
我试图在聚合函数中使用for循环,我无法通过for循环在聚合函数中分配R中通过聚合函数的循环,r,loops,R,Loops,我试图在聚合函数中使用for循环,我无法通过for循环在聚合函数中分配X1,X2,X3。我已经创建了一个虚构的示例,并且还有我的代码 year = cbind(rep(2000, 12), rep(2001, 12), rep(2002, 12)) year = as.vector(as.matrix(year)) month = cbind(seq(1:12), seq(1:12), seq(1:12)) month = as.vector(as.matrix(month)) X1
X1
,X2
,X3
。我已经创建了一个虚构的示例,并且还有我的代码
year = cbind(rep(2000, 12), rep(2001, 12), rep(2002, 12))
year = as.vector(as.matrix(year))
month = cbind(seq(1:12), seq(1:12), seq(1:12))
month = as.vector(as.matrix(month))
X1 = rnorm(36, mean = 0, sd = 1)
X2 = rnorm(36, mean = 2, sd = 1)
X3 = rnorm(36, mean = 0, sd = 1)
DF = data.frame(cbind(year, month, X1, X2, X3))
for (i in 1:3) {
bb_month = aggregate(as.symbol(sprintf('X%1.0f', i)) ~ month + year, DF , sum)
}
如果我理解正确,这应该可以做到:
year <- rep(c(2000:2002), each = 12)
month <- rep(1:12, 3)
days <- rep("it's a day!", length(year)) #dummy var
X1 <- rnorm(36, mean = 0, sd = 1)
X2 <- rnorm(36, mean = 2, sd = 1)
X3 <- rnorm(36, mean = 0, sd = 1)
DF <- data.frame(year, month, days, X1, X2, X3)
aggregate(formula = . ~ year + month,
data = DF[, names(DF) != "days"],
FUN = sum)
你到底想做什么?当你只有这些因素的唯一组合时,你想按月+年求和。我有一个每日数据,这个例子只是为了说明循环是否对这个曼内利有效,但我希望它在循环中发生,因为我正在做其他进一步的计算。我只想把聚合函数中的X1改成X2,X3。。。随着循环的进行等等
for (i in 1:3) {
fml <- as.formula(sprintf('X%i ~ month + year', i))
bb_month <- aggregate(formula = fml,
data = DF, FUN = sum)
###Loop continues###
}