У меня есть объект xts, который включает несколько параметров за 24-часовой период (измерения каждую минуту). В зависимости от времени я добавил группу столбцов в 4 варианта «времени дня» (tod): «утро», «день», «вечер» и «ночь».
Я хотел бы извлечь средние значения и стандартные отклонения столбцов (параметров) за весь период, а также по времени суток ('tod').
Я попытался сначала преобразовать объект xts во фрейм данных, но у меня возникли проблемы с тем, что столбцы имеют фактор класса, а не числовые. Я также пробовал «агрегировать», но получаю действительно странные результаты (или ошибки), когда использую агрегат. Вот пример:
например, код для создания гораздо меньшей версии моих данных:
# time vector:
Time <- ISOdatetime(2015,01,01,6,12,0) + seq(0:(0.5*60-1))*1*60
# sample parameter columns
a <- 1:30
b <- 31:60
c<-seq(1,90,3)
# a sample xts object 'tester'
tester <- xts(cbind(a,b,c),Time)
# assign 'time of day':
tester$tod <- NA
tester$tod["T06:00/T06:20"]<-"night"
tester$tod["T06:21/T11:30"]<-"morning"
tester$tod["T06:31/T06:50"]<-"afternoon"
например, о том, как я пытался получить средние значения для a, b, c как для всех данных, так и с помощью «tod» с использованием «aggregate» (обратите внимание, что в моих данных есть NA, но это не проблема):
tester$group = 1 #create a group column just to get the means for all data
mean_all <- aggregate(.~group, data=tester, FUN=mean, na.rm = TRUE, na.action=NULL)
meann_tod <- aggregate(.~tod, data=tester, FUN=mean, na.rm = TRUE, na.action=NULL)
К сожалению, это не работает, хотя ошибок нет, значения полностью неверны.
Любой совет будет очень признателен, я представлял, что это будет очень простой задачей!