R语言 我想按日期累积字符串值列表

roejwanj  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(81)

我有一列A,它是一个日期,B是一个字符串值。
| | 一个|B|
| - -----|- -----|- -----|
| 1| 2019 - 02 - 23|苹果|
| 2| 2019 - 02 - 23|梨|
| 3| 2019 - 02 - 23|苹果|
| 4| 02/02/23|苹果|
| 3| 02/02/23|苹果|
| 3| 2019 - 02 - 23|香蕉|
| 3| 02/02/23|香蕉|
| 3| 02/02/23|苹果|
我希望输出是一个列表上的唯一日期,与累积日的字符串值在B。
像这样
| | 一个|B|
| - -----|- -----|- -----|
| 1| 2019 - 02 - 23|苹果|
| | | 梨|
| 1| 2019 - 02 - 23|苹果|
| | | 梨|
| | | 香蕉|
感谢您的评分!!!
我试过基本的累积,但当我使用字符串值而不是数字时,似乎无法达到预期的结果。

hfyxw5xn

hfyxw5xn1#

更新删除了第一个答案:我们可以使用accumulateunion以及一些数据调整来实现:

library(dplyr)
library(tidyr) 

df %>% 
  arrange(A) %>% 
  mutate(cumulative = accumulate(B, ~union(.x, .y))) %>% 
  reframe(B = last(cumulative), .by=A) %>% 
  unnest(B) %>% 
  mutate(A = ifelse(row_number() != 1, "", A), .by=A)
A      B
1 1  apple
2     pear
3 2  apple
4     pear
5   banana

相关问题