gpt4 book ai didi

R 精确选择基于 %in%

转载 作者:行者123 更新时间:2023-12-04 14:22:10 24 4
gpt4 key购买 nike

我在做一个简单的操作时遇到了一些麻烦。

我想要的是简单地选择按 id 分组的行,具有所有值 (-1, -2, -3, -4) ,并根据此条件应用标记。

   id time
1 1 -4
2 1 -3
3 1 -2
4 1 -1
5 2 -1
6 2 -2
7 3 -1
8 3 -3
9 4 -1
10 4 -2
11 4 -3
12 4 -4

直觉上我想要
rb[rb$time %in% c(-1, -2, -3, -4), ]

但是,当我这样做时,所有 id被选中。所以, %in%运算符使用 OR |运算符(operator)。

所以,我想我可以做到这一点,使用 AND &运算符(operator)
rb[rb$time == -1 & 
rb$time == -2 &
rb$time == -3 &
rb$time == -4, ]

但它不起作用。

我如何标记或子集这些的任何线索 id ,这样
   id time tag
1 1 -4 1
2 1 -3 1
3 1 -2 1
4 1 -1 1
5 2 -1 0
6 2 -2 0
7 3 -1 0
8 3 -3 0
9 4 -1 1
10 4 -2 1
11 4 -3 1
12 4 -4 1

最佳答案

dplyr可能是:

df %>%
group_by(id) %>%
mutate(tag = all(c(-1, -2, -3, -4) %in% time) * 1)

id time tag
<int> <int> <dbl>
1 1 -4 1
2 1 -3 1
3 1 -2 1
4 1 -1 1
5 2 -1 0
6 2 -2 0
7 3 -1 0
8 3 -3 0
9 4 -1 1
10 4 -2 1
11 4 -3 1
12 4 -4 1

base R 相同可能:
with(df, ave(time, id, FUN = function(x) all(c(-1, -2, -3, -4) %in% x) * 1))

关于R 精确选择基于 %in%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56393216/

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