Р: Есть ли способ поиска почти идентичной строки? - PullRequest
0 голосов
/ 17 января 2020

Это моя первоначальная проблема: Как бы я мог удалить противоположные значения (например, возмещения) в данных панели?

Учитывая следующие данные:

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
...

Две удаленные строки идентичны, за исключением даты и количества. Есть ли способ сопоставить две разные строки для определенных переменных?

Еще одно требование состоит в том, чтобы убедиться, что отрицательный квант идет после соответствующей строки по дате. В идеале это должна быть самая поздняя дата перед отрицательным квантовым наблюдением.

data

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 голосов
/ 17 января 2020

Может быть, это?

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
...