我有很多測量值,每分鐘記錄一次。某些值的平均值是給定分鐘的最小值和最大值。我想總結/聚合整個data.frame有每30分鐘一個條目,所以按時間序列和不同功能彙總數據幀
str(wgData)
'data.frame': 115200 obs. of 7 variables:
$ TIMESTAMP : POSIXct, format: "2012-11-24 00:00:00" "2012-11-24 00:01:00" "2012-11-24 00:02:00" 7"2012-11-24 00:03:00" ...
$ RECORD : int 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 ...
$ TPanel : num -0.075 -0.075 -0.075 -0.095 -0.095 -0.095 -0.095 -0.118 -0.118 -0.118 ...
$ VBattery : num 13.8 13.8 13.8 13.8 13.8 ...
$ VBatteryHeating_Avg: num 12.2 12.2 12.2 12.2 12.2 ...
$ VBatteryHeating_Min: num 12.2 12.2 12.2 12.2 12.2 ...
$ VBatteryHeating_Max: num 12.2 12.2 12.2 12.2 12.2 ...
所以我想計算每30分鐘:TIMESTAMP
,TPanel
(面板Temperatur的意思),平均VBattery
,平均VBatteryHeating_Avg
的VBatteryHeating_Min
最小,最大的VBatteryHeating_Max
我取得了一些成功通過做
wgData30min <- aggregate(list(TP = wgData$TPanel, VB=wgData$VBatteryHeating_Avg, VB_MIN=wgData$VBatteryHeating_Min, VB_MAX=wgData$VBatteryHeating_Min),
list(Timestamp = cut(wgData$TIMESTAMP, "30 min")),
mean)
head(wgData30min)
Timestamp TP VB VB_MIN VB_MAX
1 2012-11-24 00:00:00 -0.1621667 12.15467 12.15333 12.15333
2 2012-11-24 00:30:00 -0.4751667 12.13333 12.13133 12.13133
3 2012-11-24 01:00:00 -0.5647333 12.11167 12.11067 12.11067
4 2012-11-24 01:30:00 -0.4573667 12.09133 12.08967 12.08967
5 2012-11-24 02:00:00 -0.4923667 12.07100 12.07000 12.07000
6 2012-11-24 02:30:00 -0.6469000 12.04933 12.04733 12.04733
...但沒能傳遞要應用於列的函數數組。任何幫助表示讚賞。
你能否包含一個可重複的例子?讓人們更容易回答你的問題。 – geotheory
不幸的是,這對於'aggregate'來說是不可能的,即這個函數不接受不同的函數來應用於不同的列。 –