我有几家商店(行)的每周(每周)销售矩阵。目标是计算周数和突出显示的异常值之间的百分比差异,例如,销售额增加/减少70-100%。我在循环逻辑和正确访问矩阵元素方面遇到麻烦。
到目前为止,我已经建立了一个循环来计算一行的差异,但是它将重复该行16次,而不是转到矩阵的下一行。另外,我添加了一个条件语句来突出显示w / 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