Thank you Lars
Here it is
structure(list(NPC = c(103920617L, 103920617L, 103920617L, 103920617L,
103920617L, 103920617L, 103920617L, 103920617L, 103920617L, 103920617L,
103920617L, 103920617L, 106320750L, 106320750L, 106320750L, 106320750L,
106320750L, 106320750L, 106320750L, 106320750L, 106320750L, 106320750L,
106320750L, 106320750L, 106320750L, 106320750L, 106320750L, 106320750L,
106320750L, 106320750L, 106320750L, 106320750L, 106320750L, 106320750L,
106320750L, 106320750L, 106320750L, 106320750L, 106320750L, 106320750L,
106320750L, 106320750L, 106320750L, 106320750L, 106320750L, 106320750L,
106320750L, 106320750L, 106320750L, 106320750L), PAIS_COD = c("ES",
"ES", "ES", "ES", "ES", "ES", "ES", "ES", "ES", "ES", "ES", "ES",
"AT", "BE", "BE", "BE", "BE", "BE", "BE", "BE", "BE", "BE", "BE",
"BE", "BE", "BE", "BE", "BE", "BE", "BE", "BE", "CZ", "CZ", "CZ",
"DE", "DE", "DE", "DE", "DE", "DE", "DE", "DE", "DE", "DE", "DE",
"DE", "DE", "DE", "DE", "DE"), ANO_REF = c(2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2018L,
2018L, 2018L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2018L, 2017L, 2016L, 2018L, 2018L, 2018L, 2018L, 2018L,
2018L, 2018L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L), MES_REF = c(12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L,
4L, 3L, 2L, 1L, 6L, 12L, 11L, 10L, 9L, 8L, 7L, 5L, 3L, 2L, 1L,
12L, 11L, 9L, 8L, 4L, 3L, 2L, 1L, 11L, 10L, 11L, 12L, 10L, 9L,
5L, 4L, 3L, 1L, 12L, 11L, 10L, 8L, 7L, 5L, 4L, 3L, 2L), VF = c(14297,
17326, 33461, 37192, 39201, 35816, 25126, 28974, 16166, 14058,
11517, 5381, 2526, 11664, 11536, 10, 4404, 23688, 8103, 2266,
2485, 3749, 22098, 9488, 4721, 72464, 5654, 32610, 4199, 27630,
27572, 3362, 3488, 1799, 1010, 456, 16635, 3922, 3238, 16083,
3828, 20012, 6977, 6857, 2487, 837, 2664, 5335, 6817, 7873),
NPCPAISCOD = c("103920617ES", "103920617ES", "103920617ES",
"103920617ES", "103920617ES", "103920617ES", "103920617ES",
"103920617ES", "103920617ES", "103920617ES", "103920617ES",
"103920617ES", "106320750AT", "106320750BE", "106320750BE",
"106320750BE", "106320750BE", "106320750BE", "106320750BE",
"106320750BE", "106320750BE", "106320750BE", "106320750BE",
"106320750BE", "106320750BE", "106320750BE", "106320750BE",
"106320750BE", "106320750BE", "106320750BE", "106320750BE",
"106320750CZ", "106320750CZ", "106320750CZ", "106320750DE",
"106320750DE", "106320750DE", "106320750DE", "106320750DE",
"106320750DE", "106320750DE", "106320750DE", "106320750DE",
"106320750DE", "106320750DE", "106320750DE", "106320750DE",
"106320750DE", "106320750DE", "106320750DE"), num = c(1L,
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 1L, 2L,
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L,
16L, 17L, 18L, 1L, 2L, 3L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L)), row.names = c(NA,
-50L), groups = structure(list(NPC = c(103920617L, 106320750L,
106320750L, 106320750L, 106320750L, 106320750L, 106320750L, 106320750L,
106320750L), PAIS_COD = c("ES", "AT", "BE", "BE", "CZ", "CZ",
"CZ", "DE", "DE"), ANO_REF = c(2016L, 2018L, 2017L, 2018L, 2016L,
2017L, 2018L, 2017L, 2018L), .rows = structure(list(1:12, 13L,
24:31, 14:23, 34L, 33L, 32L, 42:50, 35:41), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, 9L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
Distinct_NPC <- F2_2016_2018 %>% distinct(NPC)
for (j in 1:nrow(Distinct_NPC))
{
Distinct_PAIS <- F2_2016_2018 %>% filter(NPC==Distinct_NPC[j,]) %>% distinct(PAIS_COD)
for(i in 1:nrow(Distinct_PAIS))
{
A <- F2_2016_2018 %>% filter(NPC==Distinct_NPC[j,] & PAIS_COD==Distinct_PAIS[i,]) %>% group_by(ANO_REF,MES_REF) %>% summarise(VF = sum(VF))
N <- nrow(A)
if(N!=0) {
B <- A$VF
NPC <- Distinct_NPC[j,]
PAIS_COD <- Distinct_PAIS[i,]
NC8 <- ""
MAD <- c(median(B)-2*mad(B), median(B)+2*mad(B))
Lim_Inf <- MAD[1]
Lim_Sup <- MAD[2]
C <- F2_2016_2018 %>% filter(NPC==Distinct_NPC[j,] & PAIS_COD==Distinct_PAIS[i,] & MES_REF==1) %>% group_by(MES_REF) %>% summarise(VF = sum(VF))
D <- nrow(C)
ifelse(D==0, VF <- 0, VF <- C$VF)
Res_2MAD <- if(VF<MAD[1]|VF>MAD[2]) {Res_2MAD <- "outlier"} else{Res_2MAD <- "normal"}
New <- data.frame(NPC, PAIS_COD, NC8, VF, Lim_Inf, Lim_Sup, Res_2MAD, N)
if(j==1 & i==1) {NPC_PAIS_VF <- data.frame(NPC, PAIS_COD, NC8, VF, Lim_Inf, Lim_Sup, Res_2MAD, N)}
else {NPC_PAIS_VF <- rbind.data.frame(NPC_PAIS_VF, New)}
}
}
}
This is the code.