Имам обект xts, който включва множество параметри за период от 24 часа (измервания всяка минута). Въз основа на часа добавих колона, групирана в 4 опции за „час от деня“ (tod): „сутрин“, „следобед“, „вечер“ и „нощ“.
Бих искал да извлека средните стойности и стандартните отклонения на колоните (параметри) за целия период, а също и по време на деня („tod“).
Опитах се първо да преобразувам обекта xts в рамка с данни, но имам проблеми с колоните, които са от класов фактор вместо числови. Опитах също „aggregate“, но получавам наистина странни резултати (или грешки), когато използвам aggregate. Ето един пример:
например код за създаване на много по-малка версия на моите данни:
# 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)
За съжаление това не работи, въпреки че няма грешки, стойностите са напълно грешни.
Всеки съвет ще бъде много оценен, предполагах, че това ще бъде много проста задача!