У меня есть матрица недельных продаж (столбцы) для нескольких магазинов (строк).Цель состоит в том, чтобы рассчитать процентную разницу между неделями и выделенными значениями, которые являются ненормальными, например, увеличение / уменьшение продаж на 70 - 100%.У меня проблемы с циклической логикой и правильным доступом к элементам матрицы.
До сих пор я настроил цикл, который вычисляет разницу в одной строке и повторяет эту строку 16 раз вместо переходак следующей строке в матрице.Кроме того, я добавил условный оператор, чтобы выделить значения с помощью condformat, но я не верю, что я использую его правильно.
library(condformat)
#Specifies location of cvs file
dat <- read.csv("S:/Brooke Hughes/APT Store Level Data 5_28 .csv")
# Prints Table values
dat
# Checks class of data set
class(dat)
# Converts dataframe into matrix
mat <- as.matrix(dat)
class(mat)
condformat(mat)
# Sets column number to begin iterations
for (col(mat) in colnames(mat)) {
s1 <- col(mat)
s2 <- col(mat) + 1
#calculates percentage increase for two dates
percdiff <- ((s2-s1)/s1)
print(percdiff)
# Colors in cells of weeks with sales abnormalities
if (percdiff > .8 ){
rule_text_color(s1, na.color= "#7D00FF")
rule_text_color(s2, na.color= "#7D00FF")
}
}
Я ожидаю, что на выходе отобразится исходная матрица со столбцом вычисления процентной разницы между двумя значениями столбца, использованными для его получения.Затем в столбце с процентной разницей я хочу, чтобы значения были выделены, если они превышают определенный порог.
Пока у меня есть это
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
[1,] 1 0.5 0.3333333 0.25 0.2 0.1666667 0.1428571 0.125 0.1111111 0.1 0.09090909 0.08333333 0.07692308 0.07142857 0.06666667
[2,] 1 0.5 0.3333333 0.25 0.2 0.1666667 0.1428571 0.125 0.1111111 0.1 0.09090909 0.08333333 0.07692308 0.07142857 0.06666667
[3,] 1 0.5 0.3333333 0.25 0.2 0.1666667 0.1428571 0.125 0.1111111 0.1 0.09090909 0.08333333 0.07692308 0.07142857 0.06666667
[4,] 1 0.5 0.3333333 0.25 0.2 0.1666667 0.1428571 0.125 0.1111111 0.1 0.09090909 0.08333333 0.07692308 0.07142857 0.06666667
[5,] 1 0.5 0.3333333 0.25 0.2 0.1666667 0.1428571 0.125 0.1111111 0.1 0.09090909 0.08333333 0.07692308 0.07142857 0.06666667