这是我最初的问题:How would I be able to remove opposite values (e.g. refunds) in panel data?
给出以下数据:
id|datee | price | quant | discrete_x
1 2018-12-19 4 -3000 A
1 2018-12-04 4 3000 A
1 2018-12-21 4 3000 B
1 2018-12-20 3 2000 A
...
这是我想要的输出:
id|datee | price | quant | discrete_x
1 2018-12-21 4 3000 B
1 2018-12-20 3 2000 A
...
除日期和数量外,删除的两行相同。有没有办法为某些变量匹配两个不同的行?
另一个要求是,要确保负数量排在日期匹配行之后。理想情况下,也应该是负定量观察之前的最新日期。
数据
df <- read.table(h=T,text="
id datee price quant discrete_x
1 '2018-12-19' 4 -3000 A
1 '2018-12-04' 4 3000 A
1 '2018-12-21' 4 3000 B
1 '2018-12-20' 3 2000 A")
答案 0 :(得分:0)
也许是吗?
library(dplyr)
df %>%
group_by(id, discrete_x) %>%
slice(n()) %>%
ungroup()
#> # A tibble: 2 x 5
#> id datee price quant discrete_x
#> <int> <fct> <int> <int> <fct>
#> 1 1 2018-12-20 3 2000 A
#> 2 1 2018-12-21 4 3000 B