我有一个很大的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所做的那样,但我希望表达式计算子集数据的平均值,而不是执行两次操作,然后删除行。
谢谢!
你能给我们提供一些示例数据吗? –