У меня есть следующий фрейм данных (см. dput()
ниже):
Date Time Price Volume VolumeSEK Bid.Price Ask.Price BidAskSpread MidPrice Company
1005 11.09.2018 25204.72 98.500 1153 113570.500 98.58 98.58 0.00 98.580 SEB
1071 11.09.2018 25209.89 233.300 158 36861.400 233.30 233.80 0.50 233.550 Alfa Laval
88995 12.09.2018 25220.83 170.500 101 17220.500 170.50 170.60 0.10 170.550 Skanska
1115 11.09.2018 25224.86 233.300 1 233.300 233.30 233.70 0.40 233.500 Alfa Laval
89001 12.09.2018 25229.77 96.960 937 90851.520 96.96 97.04 0.08 97.000 SEB
259224 14.09.2018 25239.65 213.950 126 26957.700 214.00 214.20 0.20 214.100 Swedbank
329555 17.09.2018 25244.28 178.375 19 3389.125 178.35 178.60 0.25 178.475 Skanska
1177 11.09.2018 25248.27 233.400 127 29641.800 233.30 233.60 0.30 233.450 Alfa Laval
1197 11.09.2018 25256.45 286.600 267 76522.200 286.60 287.10 0.50 286.850 Kinnevik
1200 11.09.2018 25258.17 98.520 32 3152.640 98.30 98.38 0.08 98.340 SEB
и два вектора
Comp<- c("Skanska", "SEB", "Swedbank", "Kinnevik", "Investor", "Alfa Laval")
Day<- c("11.09.2018","12.09.2018", "13.09.2018", "14.09.2018", "15.09.2018", "16.09.2018", "17.09.2018")
Я хотел бы вычислить среднее значение VolumeSEK для каждой отдельной акцииза каждый день и сохранить результаты в матрице.Я довольно новичок в R, поэтому мое первое предположение было использовать цикл for.Тем не менее, это не сработало для меня до сих пор.Это был мой подход, но я немного растерялся, и это может быть не совсем правильным подходом.
mat <- matrix(, nrow = 6, ncol = 7))
for (i in 1:Comp){
for(j in 1:Day){
mat[i,j]= mean(df$VolumeSEK[df$Company==Comp[i]& df$Date==Day[j]])
}#2
}#1
Любые отзывы и советы высоко ценятся.Заранее спасибо!
df<-structure(list(X.RIC = structure(c(8L, 2L, 10L, 2L, 8L, 12L,
10L, 2L, 6L, 8L, 12L, 4L, 6L, 8L, 6L, 2L, 6L, 8L, 12L, 4L, 6L,
8L, 12L, 12L, 4L, 4L, 4L, 12L, 4L, 12L, 12L, 4L, 12L, 4L, 4L,
8L, 6L, 12L, 4L, 4L, 6L, 10L, 4L, 10L, 12L, 12L, 8L, 4L, 6L,
8L), .Label = c("ALFA.ST", "ALFAs.BCO", "INVEb.ST", "INVEBs.BCO",
"KINVb.ST", "KINVBs.BCO", "SEBa.ST", "SEBAs.BCO", "SKAb.ST",
"SKABs.BCO", "SWEDa.ST", "SWEDAs.BCO"), class = "factor"), Date = structure(c(1L,
1L, 2L, 1L, 2L, 4L, 5L, 1L, 1L, 1L, 1L, 4L, 2L, 1L, 3L, 2L, 5L,
1L, 1L, 1L, 4L, 2L, 1L, 3L, 2L, 1L, 1L, 5L, 1L, 1L, 5L, 1L, 5L,
1L, 1L, 5L, 5L, 1L, 1L, 1L, 4L, 5L, 1L, 2L, 4L, 1L, 3L, 4L, 5L,
5L), .Label = c("11.09.2018", "12.09.2018", "13.09.2018", "14.09.2018",
"17.09.2018"), class = "factor"), Time = c(25204.724866253, 25209.891063318,
25220.83, 25224.862743496, 25229.77, 25239.65, 25244.28, 25248.266841503,
25256.450392157, 25258.169598025, 25259.431887444, 25265.42,
25267.73, 25282.608168894, 25297.72, 25300.78, 25304.39, 25312.181336031,
25314.992406965, 25334.129581998, 25337.19, 25337.52, 25338.977745285,
25339.14, 25340.48, 25341.34500136, 25346.804459672, 25347.23,
25351.80572164, 25352.089646376, 25354.56, 25356.805147054, 25359.55,
25361.804327741, 25366.804555871, 25370.11, 25372.53, 25378.384314178,
25378.884337058, 25386.788916974, 25388.64, 25389.67, 25392.033315652,
25401.17, 25403.9, 25421.773090991, 25421.98, 25424.19, 25424.21,
25424.85), Type = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Quote",
"Trade"), class = "factor"), Price = c(98.5, 233.3, 170.5, 233.3,
96.96, 213.95, 178.375, 233.4, 286.6, 98.52, 213.1, 409.75, 290.9,
98.42, 291.5, 235, 288.8, 98.4, 213.2, 407.8, 291.3, 96.78, 213,
212.3, 406.48, 407.9, 407.9, 212.8, 407.9, 213, 212.8, 407.9,
212.8, 407.9, 407.9, 96.86, 288.5, 213, 407.7, 407.9, 291.3,
178.7, 407.8, 170.9, 213.9, 212.9, 96.46, 409.7, 288.3, 96.88
), Volume = c(1153L, 158L, 101L, 1L, 937L, 126L, 19L, 127L, 267L,
32L, 64L, 17L, 31L, 733L, 100L, 130L, 51L, 46L, 214L, 21L, 78L,
155L, 55L, 761L, 295L, 121L, 6L, 113L, 5L, 350L, 4L, 5L, 3L,
6L, 5L, 711L, 567L, 350L, 13L, 8L, 4L, 110L, 587L, 607L, 1272L,
363L, 13L, 419L, 63L, 21L), Venue = structure(c(1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "SINT[GV5_TEXT]", class = "factor"),
VolumeSEK = c(113570.5, 36861.4, 17220.5, 233.3, 90851.52,
26957.7, 3389.125, 29641.8, 76522.2, 3152.64, 13638.4, 6965.75,
9017.9, 72141.86, 29150, 30550, 14728.8, 4526.4, 45624.8,
8563.8, 22721.4, 15000.9, 11715, 161560.3, 119911.6, 49355.9,
2447.4, 24046.4, 2039.5, 74550, 851.2, 2039.5, 638.4, 2447.4,
2039.5, 68867.46, 163579.5, 74550, 5300.1, 3263.2, 1165.2,
19657, 239378.6, 103736.3, 272080.8, 77282.7, 1253.98, 171664.3,
18162.9, 2034.48), Bid.Price = c(98.58, 233.3, 170.5, 233.3,
96.96, 214, 178.35, 233.3, 286.6, 98.3, 212.8, 409.6, 290.9,
98.38, 291.5, 235, 288.6, 98.38, 213.1, 407.5, 291.3, 96.76,
213, 212.1, 406.2, 407.5, 407.5, 212.8, 407.5, 213, 212.8,
407.5, 212.8, 407.5, 407.5, 96.88, 288.5, 213.1, 407.3, 407.6,
291.6, 178.6, 407.5, 170.75, 213.8, 213, 96.46, 409.3, 288.2,
96.88), Ask.Price = c(98.58, 233.8, 170.6, 233.7, 97.04,
214.2, 178.6, 233.6, 287.1, 98.38, 213, 410, 291.1, 98.42,
291.7, 235.4, 289, 98.46, 213.3, 407.8, 291.5, 96.78, 213.2,
212.4, 406.5, 407.9, 407.9, 213.1, 407.9, 213.1, 213.1, 407.9,
213.1, 407.9, 407.9, 96.98, 288.8, 213.2, 407.8, 407.9, 291.9,
178.75, 407.8, 170.95, 213.9, 213.1, 96.54, 409.6, 288.6,
96.96), BidAskSpread = c(0, 0.5, 0.1, 0.399999999999977,
0.08, 0.2, 0.25, 0.299999999999983, 0.5, 0.0799999999999983,
0.199999999999989, 0.4, 0.2, 0.0400000000000063, 0.2, 0.4,
0.4, 0.0799999999999983, 0.200000000000017, 0.300000000000011,
0.2, 0.02, 0.199999999999989, 0.3, 0.3, 0.399999999999977,
0.399999999999977, 0.3, 0.399999999999977, 0.0999999999999943,
0.3, 0.399999999999977, 0.3, 0.399999999999977, 0.399999999999977,
0.1, 0.3, 0.0999999999999943, 0.5, 0.299999999999955, 0.3,
0.15, 0.300000000000011, 0.2, 0.1, 0.0999999999999943, 0.08,
0.3, 0.4, 0.08), MidPrice = c(98.58, 233.55, 170.55, 233.5,
97, 214.1, 178.475, 233.45, 286.85, 98.34, 212.9, 409.8,
291, 98.4, 291.6, 235.2, 288.8, 98.42, 213.2, 407.65, 291.4,
96.77, 213.1, 212.25, 406.35, 407.7, 407.7, 212.95, 407.7,
213.05, 212.95, 407.7, 212.95, 407.7, 407.7, 96.93, 288.65,
213.15, 407.55, 407.75, 291.75, 178.675, 407.65, 170.85,
213.85, 213.05, 96.5, 409.45, 288.4, 96.92), Company = structure(c(4L,
1L, 5L, 1L, 4L, 6L, 5L, 1L, 3L, 4L, 6L, 2L, 3L, 4L, 3L, 1L,
3L, 4L, 6L, 2L, 3L, 4L, 6L, 6L, 2L, 2L, 2L, 6L, 2L, 6L, 6L,
2L, 6L, 2L, 2L, 4L, 3L, 6L, 2L, 2L, 3L, 5L, 2L, 5L, 6L, 6L,
4L, 2L, 3L, 4L), .Label = c("Alfa Laval", "Investor", "Kinnevik",
"SEB", "Skanska", "Swedbank"), class = "factor")), .Names = c("X.RIC",
"Date", "Time", "Type", "Price", "Volume", "Venue", "VolumeSEK",
"Bid.Price", "Ask.Price", "BidAskSpread", "MidPrice", "Company"
), row.names = c(1005L, 1071L, 88995L, 1115L, 89001L, 259224L,
329555L, 1177L, 1197L, 1200L, 1201L, 259266L, 89158L, 1253L,
178546L, 89199L, 329638L, 1312L, 1319L, 1369L, 259339L, 89245L,
1383L, 178643L, 89249L, 1385L, 1388L, 329712L, 1401L, 1404L,
329722L, 1412L, 329729L, 1418L, 1421L, 329762L, 329771L, 1437L,
1443L, 1471L, 259393L, 329810L, 1485L, 89373L, 259439L, 1532L,
178820L, 259511L, 329870L, 329871L), class = "data.frame")