gpt4 book ai didi

r - 保留具有特定字符串的行和下一行

转载 作者:行者123 更新时间:2023-12-01 22:05:08 24 4
gpt4 key购买 nike

这是我的数据框

df <- data.frame(
id = 1:14,
group_id = c(rep(1:2, each = 3), rep(3:4, each = 4)),
type = rep("A", 14), stringsAsFactors = FALSE)

df[c(2,4,8,12),"type"] <- "B"

id group_id type
1 1 1 A
2 2 1 B
3 3 1 A
4 4 2 B
5 5 2 A
6 6 2 A
7 7 3 A
8 8 3 B
9 9 3 A
10 10 3 A
11 11 4 A
12 12 4 B
13 13 4 A
14 14 4 A

我想保留类型为 B 的所有行以及下一行。

我可以...

B <- which(df$type=="B")
afterB <- B+1
df_sel <- df[c(B, afterB), ]
df_sel <- df_sel[order(df_sel$id),]
df_sel

...得到我想要的。

   id group_id type
2 2 1 B
3 3 1 A
4 4 2 B
5 5 2 A
8 8 3 B
9 9 3 A
12 12 4 B
13 13 4 A

如何以更通用的方式做到这一点。

最佳答案

另一种方式,与您所做的非常相似,但只需一步,无需重新排序:

df_sel <- df[rep(which(df$type=="B"), e=2)+c(0, 1), ] 
df_sel
# id group_id type
# 2 2 1 B
# 3 3 1 A
# 4 4 2 B
# 5 5 2 A
# 8 8 3 B
# 9 9 3 A
# 12 12 4 B
# 13 13 4 A

关于r - 保留具有特定字符串的行和下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52382201/

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