我有一個很大的data.table值,我需要爲每個縣區域(CPA)按模式(TRANMOT)計算平均旅行時間(TRPDUR)。輸出應該是一個表格,每個CPA作爲一行,然後是非機動模式平均時間的列和機動模式平均時間的列。我想出了一個骯髒的方式做到這一點在兩個獨立的data.tables:按行值計算新的data.table列
mot_table <- nomot_table <- data.table(trip_dat)
mot_table <- mot_table[!is.na(TRPDUR), list("Motorized Trip Time" = mean(TRPDUR)), keyby = list(CPA, TRANMOT)][TRANMOT == "Motorized"][,TRANMOT:=NULL]
nomot_table <- nomot_table[!is.na(TRPDUR), list("Non-Motorized Trip Time" = mean(TRPDUR)), keyby = list(CPA, TRANMOT)][TRANMOT == "Non-Motorized"][,TRANMOT:=NULL]
這不是一個美麗的方式來做到這一點,我相信我可以在一個表中做到這一點。當我在表達式(j)中列出兩列時,我無法弄清楚如何計算TRANMOT的某些值的平均值。 This post顯示瞭如何對整個data.table(i)進行子集化,就像我通過刪除NAs所做的那樣,但我希望表達式計算子集數據的平均值,而不是執行兩次操作,然後刪除行。
謝謝!
你能給我們提供一些示例數據嗎? –