gpt4 book ai didi

跨两行两列保留满足条件的记录

转载 作者:行者123 更新时间:2023-12-05 03:19:57 24 4
gpt4 key购买 nike

我有一个类似这样的数据集:

df <- 
read.table(textConnection("ID Column1 Column2
A 0 1
A 1 0
A 1 0
A 1 0
A 0 1
A 1 0
A 0 1
A 0 0
A 1 0
A 1 0
B 0 1
B 1 0
C 0 1
C 0 0
C 1 0"), header=TRUE)

我想在 dplyr 中做一个 group_by ID,它维护 Column2 = '1' 的记录,并且它下面的记录有 Column1 = '1'。每个 ID 可能发生不止一次;应排除所有其他记录。所以上面的输出应该是:

<表类="s-表"><头>身份证第 1 列第 2 列<正文>一个01一个10一个01一个10B01B10

非常感谢任何帮助,谢谢!

最佳答案

您可以使用laglead:

library(dplyr)

df %>%
group_by(ID) %>%
filter(lead(Column1) == 1 & Column2 == 1 |
Column1 == 1 & lag(Column2) == 1) %>%
ungroup()

# # A tibble: 6 × 3
# ID Column1 Column2
# <chr> <int> <int>
# 1 A 0 1
# 2 A 1 0
# 3 A 0 1
# 4 A 1 0
# 5 B 0 1
# 6 B 1 0

关于跨两行两列保留满足条件的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73317593/

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