簡體   English   中英

R 中某個時間段的平均價格

[英]Average price of a time period in R

我開始對 R 感興趣,而且我對時間序列概念是全新的。

我有時間范圍為 200 年的面板數據,我想計算每個城市 10 年的 price_average,但我找不到一種方法將其適當地塑造成一個函數。

> all_cities
    month price year     town
110    10  2625 1699   Munich
111    11  2730 1699   Munich
112    12  2782 1699   Munich
113     1    34 1700 Hannover
114     1  2520 1700   Munich
115     2    34 1700 Hannover
116     2  2730 1700   Munich
117     3    33 1700 Hannover
118     3  2765 1700   Munich
119     4    36 1700 Hannover
120     4  3150 1700   Munich

我正在尋找表單的返回數據框:

> all_cities_10y
    s.year e.year mean_price    town
1     1690  1699    xxx         Munich
2     1700  1709    xxx         Munich
3     1700  1709    xxx         Hannover

后來我想在圖表中顯示數據。 但是,我希望問題是清楚的。 我很感激任何建議。
 structure(list(month = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 1, 1, 2, 2, 3, 3, 4 ), price = c(34, 2520, 34, 2730, 33, 2765, 36, 3150, 36, 3150, 36, 3097, 36, 3675, 24, 3360, 23, 2205, 20, 2152, 21, 2520, 21, 2520, 21, 2590, 21, 2567, 24, 2415, 24), year = c(1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1701, 1701, 1701, 1701, 1701, 1701, 1701), town = c("Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover", "Munich", "Hannover" )), row.names = 113:143, class = "data.frame")

這可能對你有用......我使用了你問題中的數據(見底部答案),但沒有使用提供的樣本數據,因為它只包含 1700-1709 間隔中的年份。

library( data.table )
#make it a data.table if not already
setDT( DT )
#summarise
DT[, .(mean_proce = mean(price) ), 
   by = .(s.year = floor(year/10)*10,
          e.year = 9 + floor(year/10)*10,
          town )]

#    s.year e.year     town mean_proce
# 1:   1690   1699   Munich   2712.333
# 2:   1700   1709 Hannover     34.250
# 3:   1700   1709   Munich   2791.250

使用的樣本數據

DT <- fread("    month price year     town
    10  2625 1699   Munich
    11  2730 1699   Munich
    12  2782 1699   Munich
     1    34 1700 Hannover
     1  2520 1700   Munich
     2    34 1700 Hannover
     2  2730 1700   Munich
     3    33 1700 Hannover
     3  2765 1700   Munich
     4    36 1700 Hannover
     4  3150 1700   Munich")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM