我有一个大的数据值表,我需要按模式 (TRANMOT) 计算每个县区 (CPA) 的平均行程时间 (TRPDUR)。输出应该是一个表格,每个 CPA 为一行,然后是非机动模式的平均时间一列,机动模式的平均时间为一列。我想出了一个肮脏的方法来做这两个单独的data.tables:
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 某些值的平均值。 这篇文章展示了如何像我一样通过删除 NA 来对整个 data.table (i) 进行子集化,但我希望表达式计算子集数据的平均值,而不是执行两次操作然后删除行。
谢谢!