, ,
for (i in unique(df$Day)) {
temp <- df$Count[df$Day == i]
if (any(temp > 0)) {
condition1 <- df$Day == i - 1
condition1[which(df$Day == i - 1) < max(which(df$Day == i))] <- FALSE
if (any(condition1)) {
df$Count[df$Day == i] <- mean(df$Count[condition1]) + df$Count[df$Day == i]
df$Count[condition1] <- 0
}
}
}
print(df[order(df$Count, decreasing = TRUE),])
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
, , , , , ( ). , Day . df$Day = 12449 , , df$Day = 12448 . Count df$Day = 12449 1, , Counts , df$Day = 12448, df$Day = 12449.
, condition1, FALSE , df$Day == i - 1 ( ), , df$Day == i ( ),
condition1[which(df$Day == i - 1) < max(which(df$Day == i))] <- FALSE
, , Day , . for over unique(df$Day) , .
,
if(length(temp > 0)) {
, , - , Count , 0 . R , temp > 0 , , temp. length(temp > 0) , temp 0 (.. ). , ,
if(any(temp > 0)) {
:
- if (any(temp > 0)) {...} , accumulate.mean.count sapply. :
accumulate.mean.count <- function(this.day, lag) {
condition1 <- df$Day == this.day - lag
condition1[which(df$Day == this.day - lag) < max(which(df$Day == this.day))] <- FALSE
if (any(condition1)) {
df$Count[df$Day == this.day] <<- mean(df$Count[condition1]) + df$Count[df$Day == this.day]
df$Count[condition1] <<- 0
}
}
lags <- seq_len(30)
for (i in unique(df$Day)) {
temp <- df$Count[df$Day == i]
if (any(temp > 0)) {
sapply(lags, accumulate.mean.count, this.day=i)
}
}
print(df[order(df$Count, decreasing = TRUE),])
:
lag - , ( , ) . A lag = 1 , lag = 2 .. lags - . lags <- seq_len(30) 1 30, accumulate.mean.count, . . *apply R-. , lags , , c(1, 5, 10) , 5 10 . , , .
- R df$Count, accumulate.mean.count, accumulate.mean.count <<- <-. . <<-, .
lags <- seq_len(30), seq_len(1) , seq_len(2)
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
, , .