# Calculate elements of time series/ decompose for each variable combination for loop

I need to calculate each component of the time series for each X (50 levels) and Y (80 levels) from my dataset (df).

I wanted to go with something akin to the code below, where I tried to just get the seasonality. If I can get this it should be the same for the trend and random component of the decompose.

``````P <- df\$X

for(y in 1:length(P)) {

OneP <- P[y]
AllS <- unique(df\$Y[df\$X== OneP])

for(i in 1:length(AllS)) {
OneS<- AllS[i]

df\$TS[df\$Y == OneS & df\$X== OneP] <- ts(df\$Mean[df\$Y == OneS & df\$X
== OneP], start = c(1999, 1), end = c(2015, 12), frequency = 12)

df\$Dec[df\$Y == OneS & df\$X== OneP] <- decompose(ts(df\$TS[df\$Y == OneS &
df\$X== OneP], frequency = 12), type = c("additive"))

df\$Decomposition_seasonal[df\$Y == OneS & df\$X== OneP] <- df\$Dec([df\$Y == OneS & df\$X== OneP], Dec\$seasonal)

}
``````

But this is not working. Error message is:

Error: attempt to apply non-function

I understand that the problem might come from my attempt to put decomposition output in a column. But how else to do it? Make a new dataset for every dev in every X * Y combination?

I know that the first lines of the code work as I used it before for something else. And I know this will run and give me TS and decomposition. It's the individual components bit that I am struggling with. Any advice is deeply appreciated.

Similar data:

``````X       Y    Mean   Date(mY)
Tru 	A    35.6   02.2015
Fle	    A    15     05.2010
Srl     C    67.1   05.1999
Tru 	A    13.2   08.2006
Srl     B	 89     08.2006
Tru 	B	 14.8   12.2001
Fle	    A	 21.5   11.2001
Lub     D	 34.8   03.2000``````