gpt4 book ai didi

R:在保持顺序的同时折叠列中的重复值

转载 作者:行者123 更新时间:2023-12-02 07:19:17 24 4
gpt4 key购买 nike

我确定这非常简单,但就是找不到答案。我有一个像这样的数据框

    Id  event
1 1 A
2 1 B
3 1 A
4 1 A
5 2 C
6 2 C
7 2 A

我想按 Id 分组并折叠独特的 event值同时保持事件顺序像这样
    Id  event
1 1 A
2 1 B
3 1 A
4 2 C
5 2 A

我的大部分搜索最终都使用了 distinct()unique()功能,但这会导致丢失 A Id 的第 3 行事件1.

提前致谢!

最佳答案

我们可以使用 lead比较每一行和 filter那些与以前不同的行。 is.na(lead(Id))还包括最后几行。

library(dplyr)

dat2 <- dat %>%
filter(!(Id == lead(Id) & event == lead(event)) | is.na(lead(Id)))
dat2
# Id event
# 1 1 A
# 2 1 B
# 3 1 A
# 4 2 C
# 5 2 A

数据
dat <- read.table(text = "    Id  event
1 1 A
2 1 B
3 1 A
4 1 A
5 2 C
6 2 C
7 2 A",
header = TRUE, stringsAsFactors = FALSE)

关于R:在保持顺序的同时折叠列中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50586076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com