r语言 - 查找数据框架内相邻列中变量的前两次出现



我正在努力解决一个我似乎想不起来的问题。

我目前有一个包含每个鞋子品牌/颜色组合的交易数据的表,我们可以称这个表为transactions

这是表中数据的一个样本,但我有数千个跨品牌的此类交易。表中有5-6个以上的鞋品牌,不同的价格有多个交易。color列的值总是white黑色或.

tbody> <<tr>耐克耐克耐克耐克阿迪达斯阿迪达斯阿迪达斯
shoe_brand (fct) color (fct) transaction_date (POSIXct) price (dbl)
耐克白色2019-05-27 01:19:28200
白色2019-05-28 14:51:09500
白色2019-05-30 16:41:05600
黑色2019-05-31 20:30:48350
黑色2019-06-05 18:22:19220
白色2019-06-12 13:26:59540
黑色2019-06-23 00:28:45335
白色2019-07-02 04:26:19695

我们可以先用arrange,然后用slice_head(假设'transaction_date'是POSIXct)

library(dplyr)
df1 %>%
arrange(shoe_brand, color, transaction_date) %>%
group_by(shoe_brand, color) %>%
slice_head(n = 2)

分组后,我们可以使用top_n:

library(dplyr)
df %>%
arrange(shoe_brand, color, transaction_date) %>%
group_by(shoe_brand, color) %>%
top_n(1)

输出:

shoe_brand color transaction_date price   
<chr>      <chr> <date>           <time>  
1 Adidas     Black 2019-06-23       00:28:45
2 Adidas     White 2019-06-12       13:26:59
3 Nike       Black 2019-05-31       20:30:48
4 Nike       White 2019-05-30       16:41:05

最新更新