R:有没有办法搜索几乎相同的行?

时间:2020-01-17 12:23:20

标签: r dplyr tidyverse

这是我最初的问题: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")

1 个答案:

答案 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