Я импортировал данные из CSV, а затем помещал их в фрейм данных. Затем я вставляю его, конвертирую в XTS. После этого я использую apply.weekly, чтобы разбить его на данные за неделю. Код ниже.
library(padr)
library(xts)
library(tidyr)
library(seasonal)
library(forecast)]
library(lubridate)
library(tidyverse)
library(zoo)
df <- data.frame(data$f1.date[1:831], data.$f1[1:831]) #create data frame
colnames(df)<- c('date', 'f1')
df$date <- (as.Date(df$date, format='%m/%d/%Y'))
df<-pad(df) # add missing dates
df<-xts(df, order.by = df$date)
df$t1<-replace_na(df$f1,0) # Add Zeros for NA vals
dtw<-apply.weekly(df$f1,FUN=colSums) # I've tried using sum, colSums and mean. Mean works fine.
Однако sum или colSums возвращает следующее.
Error in FUN(x[(INDEX[y] + 1):INDEX[y + 1]], ...) : 'x' must be numeric
До сих пор я думал только о том, чтобы попробовать df$t1<-as.numeric(df$t1)
, но это не помогло.
Есть ли у кого-нибудь предложения по этому поводу? Этот сценарий отлично работал с тем же файлом csv, и я не думаю, что что-то изменилось. Я могу думать только о том, что какой-то пакет не загрузился.
Образец моих данных ниже, полная версия содержит примерно 800 строк. Сейчас я работаю над тем, чтобы сделать его воспроизводимым.
Использование dput(head(df))
дает мне это.
structure(c("2010-01-01", "2010-01-02", "2010-01-03", "2010-01-04",
"2010-01-05", "2010-01-06", " 1", "0", "0", "0", "0", "0"), class = c("xts",
"zoo"), index = structure(c(1262304000, 1262390400, 1262476800,
1262563200, 1262649600, 1262736000), tzone = "UTC", tclass = "Date"), .Dim = c(6L,
2L), .Dimnames = list(NULL, c("date", "f1")))
Я также отредактировал его, изменив 't1' на 'f1' для единообразия.
Спасибо