2017-09-19 2 views
0

die folgenden data.frame Berücksichtigung würde Ich mag den Mittelwert zwischen 2011-01-03 und 2011-01-06 berechnen:Mittelwert berechnen, basierend auf Zeithorizonte

   GOOG.Open GOOG.High GOOG.Low GOOG.Close GOOG.Volume 
2011-01-03 297.94 302.49 297.94  301.87   NA 
2011-01-04 302.51 302.79 299.76  300.76   NA 
2011-01-05 299.73 304.86 299.72  304.23   NA 
2011-01-06 305.03 308.91 304.72  306.44   NA 

Das Ergebnis des mean(data$GOOG.Open, seq(from=01/03/11, to=01/06/11)) Code gibt mir 529.8661 und referenziert tatsächlich auf verschiedene Werte im Datenrahmen. Weißt du, wie man den Mittelwert berechnet?

Antwort

0

Zuerst müssen Sie festlegen, wie Sie Ihre Daten gespeichert see haben: How to make a great R reproducible example?

I dplyr im tidyverse Paket bin mit den Daten zu analysieren und lubridate die Datumsformate zu definieren. Dies setzt voraus, dass Sie die gemittelten Daten variieren können.

library(tidyverse) 
library(lubridate) 

dat <- data.frame(date = c('2011-01-03','2011-01-04','2011-01-05','2011-01-06'), 
        GOOG.Open = c(297.94,302.51,299.73,305.03)) 
dat %>% 
    mutate(date = format(ymd(date))) %>% 
    filter(date>='2011-01-03' & date<='2011-01-06') %>% 
    summarise(goog_mean = mean(GOOG.Open)) 

Wenn Sie nur den Mittelwert der vorgelegten Daten können Sie:

mean(dat$GOOG.Open) 

oder

dat %>% 
    summarise(mean = mean(GOOG.Open)) 
+0

Nizza, danke für den Hinweis. Ich lade die Daten von Google herunter und die "Daten" sind eigentlich die Zeilennamen. Hast du eine Idee, wie ich auf diese Daten verweisen kann, wenn es sich nicht um eine Kolumne, sondern um eine rownames handelt? – aleximeyer

+0

https://drrr.io/cran/dplyr/man/add_rowames.html –

Verwandte Themen