請問如何計算(判斷)整個月時間

53 views
Skip to first unread message

fatdodo

unread,
Jul 24, 2016, 8:08:33 PM7/24/16
to taiwa...@googlegroups.com
請問,如果要
讀取 X.csv 資料檔格式如下

日期        城市    項目  item
2015/1/1    新竹    BB    10   
2015/1/2    新竹    BB    14   
2015/1/31   新竹    BB    19  
.
.
.
2015/12/31  新竹    BB    14  

2015/1/1    新竹    CC    14   
2015/1/2    新竹    CC    12   
2015/1/31   新竹    CC    19  
.
.
.
2015/12/31  新竹    CC    14


我想計算出

2015年各月份新竹項目 BB 的 item 的平均
並且轉成如下:

日期   新竹
20151   18
20152   20
20153   29


並且寫入至另一個 csv 檔

謝謝

WEPA ^_^

unread,
Jul 24, 2016, 11:06:48 PM7/24/16
to R軟體使用者論壇
Hi Fatdodo,

本例主要可使用 aggregate 函數進行分組計算, 類似Excel 的樞紐分析功能:

aggregate(item ~ 月, data=mydf[mydf$項目 == "BB", ], mean) # 項目BB各月平均值.



完整程式碼範例:
# title: 計算每月平均值
# date: 2016.7.25

# 建立資料
set.seed(168)
日期 <- rep(seq(as.Date("2015/1/1"), as.Date("2015/12/31"), by = "day"), 2)
城市 <- c("新竹")
項目 <- c(rep("BB", 365), rep("CC", 365))
item <- sample(c(10:20), 730, replace=TRUE)
mydf <- data.frame(日期, 城市, 項目, item)
str(mydf) # 本例第1行為Date資料型態
head(mydf)
tail(mydf)

# Problem: 計算出2015年各月份新竹項目 BB 的 item 的平均值
# Analysis: 採用 aggregate 進行分組計算

mydf$月 <- format(mydf$日期,"%m")
aggregate(item ~ 月, data=mydf[mydf$項目 == "BB", ], mean) # 項目BB各月平均值
aggregate(item ~ 月, data=mydf[mydf$項目 == "CC", ], mean) # 項目CC各月平均值
aggregate(item ~ 月, data=mydf, mean) # # 所有項目各月平均值
# end

fatdodo於 2016年7月25日星期一 UTC+8上午8時08分33秒寫道:

WEPA ^_^

unread,
Jul 25, 2016, 1:20:42 AM7/25/16
to R軟體使用者論壇
Hi Fatdodo,

輸出函數為 write.csv:

mydf.BB <- aggregate(item ~ 月, data=mydf[mydf$項目 == "BB", ], mean) # 項目BB各月平均值
write.csv(mydf.BB, "C:/rdata/mydf.BB.csv", row.names=FALSE)
# end

fatdodo於 2016年7月25日星期一 UTC+8上午8時08分33秒寫道:
請問,如果要

fatdodo

unread,
Jul 25, 2016, 3:32:51 AM7/25/16
to R軟體使用者論壇
謝謝老師
R真的很神奇...
一行就解決我的問題...

謝謝老師

WEPA ^_^於 2016年7月25日星期一 UTC+8下午1時20分42秒寫道:
Reply all
Reply to author
Forward
0 new messages