【发布时间】:2018-06-26 01:08:28
【问题描述】:
我正在尝试根据日期获取某些变量的总数和平均值。我有几辆车的燃料数据和驾驶数据。燃油数据由多个日期组成,而驾驶数据由多个日期组成(从逻辑上讲,您只会在 x 次行程后加油)。我的最终结果是获得基于燃料日期的总和/平均驾驶数据。
燃料数据:
plate = c("AB123", "AB123", "AB123", "AB123", "AC234", "AC234", "AC234", "AC234", "AD345", "AD345")
date = c("2017-09-08", "2017-09-11", "2017-09-13", "2017-09-20", "2017-09-06", "2017-09-08", "2017-09-15", "2017-09-23", "2017-09-10", "2017-09-18")
liter = c(33, 15, 28, 40, 43, 20, 25, 50, 26, 48)
df1 = data.frame(plate, date, liter)
驾驶数据:
plate = c("AB123", "AB123", "AB123", "AB123", "AB123", "AB123", "AB123", "AB123", "AB123", "AB123", "AB123", "AB123", "AC234", "AC234", "AC234", "AC234", "AC234", "AC234", "AC234", "AC234", "AC234", "AC234", "AC234", "AC234", "AD345", "AD345", "AD345", "AD345", "AD345", "AD345", "AD345", "AD345", "AD345", "AD345", "AD345")
date = c("2017-09-01", "2017-01-05", "2017-09-08", "2017-09-10", "2017-09-11", "2017-09-12", "2017-09-13", "2017-09-16", "2017-09-17", "2017-09-20", "2017-09-22", "2017-09-25", "2017-09-02", "2017-09-03", "2017-09-06", "2017-09-07", "2017-09-08", "2017-09-09", "2017-09-13", "2017-09-15", "2017-09-17", "2017-09-20", "2017-09-23", "2017-09-25", "2017-09-01", "2017-09-04", "2017-09-09", "2017-09-12", "2017-09-15", "2017-09-18", "2017-09-19", "2017-09-20", "2017-09-23", "2017-09-27", "2017-09-30")
mileage = c(50, 64, 45, 70, 58, 41, 22, 15, 90, 48, 52, 48, 29, 65, 70, 46, 88, 71, 40, 51, 38, 91, 74, 61, 41, 33, 59, 81, 72, 65, 43, 81, 20, 49, 39)
accx = c(0, 3, 4, 0, 8, 11, 2, 5, 9, 10, 2, 22, 9, 6, 7, 6, 8, 1, 0, 1, 8, 1, 7, 6, 4, 3, 9, 11, 22, 15, 13, 1, 2, 4, 9)
df2 = data.frame(plate, date, mileage,accx)
合并两个数据
df.all = left_join(df2, df1, by.x =c("plate", "date"))
我想获得基于燃料日期的总里程(总和)和平均 accx。最终结果应如下所示:
有没有办法使用 dplyr 来改变所需的结果?仅供参考,我只需要带有它们的板的突变参数(不需要结果行 1、2、4、6、8 等) 提前致谢!
【问题讨论】:
-
请不要发布数据的图像,只发布数据本身:图像需要有人帮助您自己转录数据(我通常不愿意这样做)。一些参考资料:stackoverflow.com/questions/5963269/… 和 stackoverflow.com/help/mcve。
-
对不起。只是我不知道生成结果的代码。所以我不得不发布一张我希望它看起来如何的图片
-
我没见过
left_join(..., by.x=...)。by.x类似于merge的参数,但dplyr::left_join只接受by。至于您的预期数据......只需手动创建一些内容并将其与您的燃料和驾驶数据框架相同。 (该图像类似于 RStudio,那么您如何在无法粘贴生成代码的情况下获得具有代表性的 data.frame,aladput(head(x))?) -
我编辑了图像哈哈。实际上,我在 12 个月内每月有超过 10000 条数据。手动计算它(就像我在图片中发布的那样)会花费我数周时间。
-
你可以使用过滤甚至虚构的数据吗?提出关于 SO 的问题可能是一门艺术,知道如何将数据和代码简化到所需的最低限度既对您有用(有助于理解流程),也增加了有人快速帮助您的可能性。
标签: r