【发布时间】:2021-02-04 09:42:36
【问题描述】:
我有这样的数据,但有时我的里程数有误。里程应该增加,但有时会出现错误的数字 - 太低或太高。是否可以在 R 中清理该数据?你有什么想法? 对于这个错误,我可以使用低于和高于记录的平均值,但是如何按顺序捕获错误?
CarID FuelTransactionDate Mileage
AAA555 05.01.2019 5060
AAA555 30.01.2019 7800
AAA555 14.02.2019 9100
AAA555 24.02.2019 9900
AAA555 07.04.2019 101110 <- mistake
AAA555 12.04.2019 12500
AAA555 15.05.2019 13000
AAA555 09.06.2019 13422
BBB788 15.05.2018 15000
BBB788 04.06.2018 15200
BBB788 19.06.2018 16150
BBB788 16.07.2018 100 <- mistake
BBB788 27.08.2018 17500
BBB788 10.09.2018 17999
BBB788 13.10.2018 18200
BBB788 02.11.2018 18555
【问题讨论】:
-
您好 :) 您可以使用描述性统计函数,例如
summary()和barplot()来检查一些错误。这应该足以发现导致数字非常高或低的错误。然后,当Mileage n > Mileage n+1 -
而且由于您的数据很整洁,我会使用
dplyr::summarise()、dplyr::group_by()和ggplot2来完成。 -
嗨。谢谢。当 Mileage n > Mileage n+1 听起来不错时,按组和行之间的百分比变化来发现的想法。你能告诉我更多如何做到这一点吗?
-
你可以使用这个:
df %>% group_by(CarID) %>% mutate(rate = Mileage/lag(Mileage, n = 1, default = NA)),或者这个:df %>% group_by(CarID) %>% mutate(rate = Mileage - lag(Mileage, n = 1, default = NA))。df是您作为 data.frame 的数据。
标签: r data-cleaning