R 压缩数据框

问题描述 投票:0回答:0

我有以下数据框:

df <- data.frame(rep = c(1,1,1,1,1,1,2,2,2,2,2,2),
                 time = c(0.0000,0.0002,0.0003,0.0015,0.0450,0.07800,0.0000,0.0002,0.0003,0.0015,0.0450,0.07800),
                 Event = c("A", "A", "A", "B", "C", "C","A", "B", "B", "B", "C", "C"))

所以想法是通过代表来压缩数据。在每个代表中,只有第一个事件保留在系列中,相同的事件被删除,直到系列中发生下一个不同的事件。

ddf <- data.frame(rep = c(1,1,1,2,2,2),
                 time = c(0.0000,0.0015,0.0450,0.0000,0.0002,0.0450),
                 Event = c("A","B", "C", "A", "B", "C"))

我知道我需要从代表分组开始,然后是事件

new_df <- df %>% group_by(rep) %>% slice_head(rle(Event))

但我担心 slice_head 会取出太多所以寻求意见。

谢谢。

r data-manipulation
© www.soinside.com 2019 - 2024. All rights reserved.