Р. Одна и та же команда дает разные сюжеты. Переменная и строка символов
Я врал. Это не совсем те же команды. Но я не вижу, чем они отличаются.
Я сделал функцию sales.deriv. Это определение в нижней части страницы. Функция находит производную данных о продажах из данного кадра данных и строит ее график. (Вероятно, они неэффективны в том, как я их кодировал. Не стесняйтесь комментировать их, но их очистка здесь не моя задача.)
Команда первая,
> sales.deriv(trans.df=subset(trans, Week < 27 & Week > 8 & Day == "Wednesday"))
возвращает участок первый:
Команда вторая,
> Day <- "Wednesday"
> sales.deriv(trans.df=subset(trans, Week < 27 & Week > 8 & Day == Day))
Возвращает Участок Два:
Как видите, графики разные - наиболее заметно по числу относительных пиков до 11. Определив Day <- "Wednesday"
Впрочем, мне кажется, команды должны быть одинаковыми. Что тут происходит?
Определение функции:
sales.deriv <- function(trans.df, plot=TRUE, xmin=7, xmax=18, ymin=0, ymax=150, title = "Rate of Revenue", pch=1, col="black", n=50, cex=1)
{
trans$Net.Sales[is.na(trans$Net.Sales)] <- 0
trans.time <- trans.df[order(trans.df$Time.Dec),]
fake.bins <- ddply(trans.df[c("Date","Net.Sales")], .(Date), summarize, Net.Sales = sum(Net.Sales))
trans.time$Cum.Sum <- cumsum(trans.time$Net.Sales) / nrow(fake.bins)
time.fit2 <- lm(Cum.Sum ~ poly(Time.Dec, n, raw=T), data=subset(trans.time, Hour >= 6 | Time.Dec<20))
sales.rate <- data.frame(Time.Dec=seq(from=xmin, to=xmax, by=.0333))
sales.rate$Cum.Sum <- predict(time.fit2, sales.rate)
dYdX <- diff(sales.rate$Cum.Sum)/diff(sales.rate$Time.Dec)
sales.rate$dYdX <- c(0,dYdX)
if (!plot) {
points(dYdX~Time.Dec, data=sales.rate, col=col, xlim=c(xmin,xmax), ylim=c(ymin,ymax), main=title, cex=cex, pch=pch)
} else {
plot(dYdX~Time.Dec, data=sales.rate, col=col, xlim=c(xmin,xmax), ylim=c(ymin,ymax), main=title, pch=pch, cex=cex, xlab="Time", ylab="Revenue per Hour", xaxt="n")
axis(1, at=seq(from=xmin, to=xmax, by=1))}}